/* New access controls use the existing palette. Preference modes are opt-in. */
.a11y-launcher,.cookie-launcher,.cookie-footer-button{display:grid;place-items:center;width:52px;height:52px;flex:0 0 52px;border:1px solid var(--light);border-radius:50%;color:white;background:var(--dark);padding:0;cursor:pointer}
.a11y-launcher,.cookie-launcher{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));z-index:81;box-shadow:0 5px 20px #0002}
.a11y-launcher{left:24px;color:var(--gray)}.cookie-launcher{left:88px}
.show--consent .back-to-top{visibility:hidden}
.show--consent .a11y-launcher,.show--consent .cookie-launcher{z-index:1000}
.show--consent #cc-main .cm{bottom:calc(var(--cc-modal-margin,20px) + 76px);max-height:calc(100vh - 116px);max-height:calc(100dvh - 116px)}
.a11y-launcher svg,.cookie-launcher svg,.cookie-footer-button svg{width:27px;height:27px}
.a11y-launcher:hover,.cookie-launcher:hover,.cookie-footer-button:hover{background:var(--olive)}
.a11y-launcher:focus-visible,.cookie-launcher:focus-visible,.cookie-footer-button:focus-visible,.cookie-widget-placeholder:focus-visible,.a11y-dialog :focus-visible{outline:3px solid var(--dark);outline-offset:3px;box-shadow:0 0 0 7px white}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.site-footer .footer-legal-controls{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:16px;min-width:0;width:100%}
.site-footer .footer-legal-controls .footer-legal{justify-content:center;justify-self:stretch;min-width:0;text-align:center}
.site-footer .cookie-footer-button{position:static;align-self:center;justify-self:end;margin:0;width:52px;height:52px;flex-basis:52px;color:var(--gray)}
.site-footer .cookie-footer-button svg{width:26px;height:26px}
.site-footer .footer-legal-controls{margin:0;padding:0}
/* The separator spans the complete footer panel, outside its content padding. */
.site-footer .footer-bottom{position:relative;border-top-color:transparent}
.site-footer .footer-bottom::before{content:"";position:absolute;top:-1px;left:calc(-1 * var(--band-padding));right:calc(-1 * var(--band-padding));height:1px;background:var(--olive);pointer-events:none}
@media(min-width:1101px){.site-footer .footer-bottom{grid-template-columns:minmax(0,1fr) auto minmax(370px,1fr)}}
html.a11y-high-contrast .site-footer .footer-bottom::before{background:#182011}
.cookie-footer-visible .back-to-top{bottom:max(88px,calc(env(safe-area-inset-bottom) + 88px))}
.cookie-widget-placeholder{display:grid;place-items:center;width:167px;min-height:58px;padding:7px 10px;border:1px solid var(--light);border-radius:8px;background:var(--dark);color:white;font:500 10px/1.5 var(--body);text-align:center;cursor:pointer}
.site-footer .footer-impact{width:440px}
.site-footer .google-business-badge{flex:0 0 58px;display:flex;align-items:center;justify-content:center;width:58px;height:58px;padding:0;border:1px solid white;border-radius:8px;background:var(--dark);color:white}
.site-footer .google-business-badge img{width:44px;height:44px;object-fit:contain}
.site-footer .google-business-badge:hover{background:var(--olive)}
.site-footer .google-business-badge:focus-visible{outline:3px solid white;outline-offset:4px}
html.a11y-high-contrast .site-footer .google-business-badge:focus-visible{outline-color:#182011}
@media(max-width:560px){.site-footer .footer-impact{flex-direction:column;width:167px}.site-footer .footer-impact-widget{flex-basis:58px}.site-footer .google-business-badge{flex-basis:58px}}
.cookie-inline-settings{display:inline-flex;align-items:center;min-height:44px;padding:8px 2px;background:transparent;border:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:4px}
.tools-noscript{padding:16px var(--gutter);background:var(--earth);color:var(--dark);font:13px/1.7 var(--body);max-width:none}.tools-noscript a{text-decoration:underline}
.a11y-dialog-open{overflow:hidden}
.a11y-dialog:not([open]){display:none}
.a11y-dialog{width:min(540px,calc(100% - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:clamp(20px,4vw,32px);border:1px solid var(--light);border-radius:30px;background:var(--earth);color:var(--dark);overflow:auto;overscroll-behavior:contain;font-family:var(--body);font-size:calc(14px * var(--a11y-scale,1));line-height:1.65;box-shadow:0 25px 80px #0004}
.a11y-dialog::backdrop{background:#18201199}
.a11y-panel-header{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-bottom:20px}
.a11y-dialog h2{font:650 1.6em/1.2 var(--heading);margin:0;overflow-wrap:anywhere}
.a11y-dialog p{font-size:inherit;line-height:1.65;margin:0 0 18px}
.a11y-close{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--olive);border-radius:50%;background:transparent;color:var(--dark);font-size:25px}
.a11y-dialog fieldset{min-width:0;border:0;margin:0 0 20px;padding:0}
.a11y-dialog legend{font-weight:650;margin-bottom:12px;padding:0;line-height:1.5}
.a11y-text-options{display:flex;flex-wrap:wrap;gap:10px}
.a11y-text-options label{flex:1 1 calc(50% - 10px);display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 8px;border:1px solid var(--olive);border-radius:16px;cursor:pointer}
.a11y-text-options label:has(input:checked){background:var(--dark);color:white}
.a11y-dialog input{flex-shrink:0;width:20px;height:20px;margin:0;accent-color:var(--olive)}
.a11y-toggle{display:flex;align-items:center;gap:14px;min-height:44px;padding:14px 0;border-bottom:1px solid #2e322130;cursor:pointer}
.a11y-toggle span{flex:1;min-width:0}
.a11y-system-note{padding:12px;border:1px solid var(--olive);border-radius:12px}
.a11y-reset{width:100%;min-height:48px;margin:18px 0;padding:12px 18px;border:1px solid var(--dark);border-radius:40px;background:var(--dark);color:white;font:600 1em/1.4 var(--body)}
.a11y-dialog a{text-decoration:underline;text-underline-offset:3px}
.a11y-dialog .a11y-statement{margin:0}
/* CookieConsent is local; acceptance and rejection have equal visual weight. */
:root{--cc-font-family:var(--body);--cc-modal-border-radius:28px;--cc-btn-border-radius:50px;--cc-bg:#dfd3c0;--cc-primary-color:#2e3221;--cc-secondary-color:#564e42;--cc-btn-primary-bg:#2e3221;--cc-btn-primary-color:#fff;--cc-btn-primary-border-color:#2e3221;--cc-btn-primary-hover-bg:#564e42;--cc-btn-primary-hover-color:#fff;--cc-btn-primary-hover-border-color:#564e42;--cc-btn-secondary-bg:#dfd3c0;--cc-btn-secondary-color:#2e3221;--cc-btn-secondary-border-color:#564e42;--cc-btn-secondary-hover-bg:#b3ba9d;--cc-btn-secondary-hover-color:#2e3221;--cc-btn-secondary-hover-border-color:#564e42;--cc-link-color:#2e3221;--cc-separator-border-color:#b3ba9d;--cc-toggle-on-bg:#2e3221;--cc-toggle-off-bg:#564e42;--cc-toggle-on-knob-bg:#fff;--cc-toggle-off-knob-bg:#fff;--cc-toggle-readonly-bg:#687347;--cc-toggle-readonly-knob-bg:#fff;--cc-toggle-readonly-knob-icon-color:#2e3221;--cc-cookie-category-block-bg:#dfd3c0;--cc-cookie-category-block-border:#b3ba9d;--cc-cookie-category-block-hover-bg:#dfd3c0;--cc-cookie-category-block-hover-border:#564e42;--cc-footer-bg:#dfd3c0;--cc-footer-color:#2e3221;--cc-footer-border-color:#b3ba9d;--cc-overlay-bg:#18201199;--cc-modal-margin:20px}
#cc-main{font-size:calc(15px * var(--a11y-scale,1))}
#cc-main .cm{height:auto;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto}
#cc-main .cm .cm__desc{max-height:none;overflow:visible;line-height:1.65}
#cc-main :is(.cm,.pm)>div[tabindex="-1"]:empty{outline:none}
#cc-main .cm__title,#cc-main .pm__title{font-family:var(--heading);line-height:1.3;font-size:1.3em}
#cc-main .cm__btn,#cc-main .pm__btn{min-height:44px}
#cc-main .cm__links{display:flex;flex-wrap:wrap;gap:0 8px}
#cc-main .cm__links a{display:inline-block;padding-block:7px}
#cc-main .cm__links a,#cc-main .pm__section-desc a,.site-footer .footer-legal a,.a11y-dialog .a11y-statement a{text-decoration:none;border-bottom:0;background-size:0 1px}
#cc-main .cm__links a:hover,#cc-main .pm__section-desc a:hover,.site-footer .footer-legal a:hover,.a11y-dialog .a11y-statement a:hover{text-decoration:underline;text-underline-offset:3px;background-size:0 1px}
#cc-main .cm__link-group{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:16px;padding-block:8px}
#cc-main .cm__link-group>*+*{margin-left:0}
#cc-main .cookie-legal-links{min-width:0;overflow-wrap:anywhere}
#cc-main .cookie-accessibility-button{display:grid;place-items:center;width:52px;height:52px;min-height:52px;padding:0;border:1px solid var(--light);border-radius:50%;background:var(--dark);color:var(--gray);font:inherit;cursor:pointer}
#cc-main .cookie-accessibility-button:hover{background:var(--olive)}
#cc-main .cookie-accessibility-button svg{display:block;width:26px;height:26px}
#cc-main :focus-visible{outline:3px solid #2e3221;outline-offset:3px}
#cc-main .cm__btn:focus-visible,#cc-main .pm__btn:focus-visible{outline-color:var(--dark);box-shadow:0 0 0 7px white}
/* Changes below apply only when requested by the visitor. */
html.a11y-no-motion,html.a11y-no-motion *,html.a11y-no-motion *::before,html.a11y-no-motion *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
html.a11y-text-enlarged :is(.hero,.hero.service-hero,.contact,.faq,.dani,.section:not(.trust-section),.scope-grid,.case-grid,.footer-columns,.footer-bottom,.steps){grid-template-columns:minmax(0,1fr)!important}
html.a11y-text-enlarged :is(.header,.hero-bottom,.footer-legal-controls){height:auto;flex-wrap:wrap}
html.a11y-text-enlarged .header{position:relative;top:auto;border-radius:30px}
html.a11y-text-enlarged .header .desktop-nav{display:none}
html.a11y-text-enlarged .header .menu-toggle{display:grid;margin-left:auto}
html.a11y-text-enlarged .header .location{display:none}
html.a11y-text-enlarged #mobile-menu{position:relative;inset:auto;margin:12px var(--gutter);max-height:none}
html.a11y-text-enlarged :is(.hero-intro,.section-head,.section-intro,.project-story-copy,.project-description,.legal-content){max-width:100%;width:auto}
html.a11y-text-enlarged :is(h1,h2,h3,h4,h5,h6,p,a,span,label,legend){overflow-wrap:anywhere}
html.a11y-text-enlarged .project-story{min-height:600px;height:auto}
html.a11y-text-enlarged .project-story-copy{position:relative;inset:auto}
html.a11y-text-enlarged :is(.footer-bottom,.footer-legal-controls,.footer-legal){justify-content:center;justify-items:center;text-align:center}
html.a11y-high-contrast body,html.a11y-high-contrast body :where(header,nav,main,footer,section,article,aside,div,figure,figcaption,p,h1,h2,h3,h4,h5,h6,a,button,summary,details,span,strong,small,em,table,thead,tbody,tr,td,th,label,legend,fieldset,input,textarea,select,dialog){background-color:#fff!important;color:#182011!important;border-color:#182011!important;box-shadow:none!important;text-shadow:none!important}
html.a11y-high-contrast :is(p,small,span,figcaption){opacity:1!important}
html.a11y-high-contrast .site-footer .footer-top img{filter:brightness(0)}
html.a11y-high-contrast .trust-logo{filter:none!important;mix-blend-mode:normal!important}
html.a11y-high-contrast .a11y-text-options label:has(input:checked){border-width:3px}
html.a11y-high-contrast input{accent-color:#182011}
html.a11y-high-contrast .menu-toggle .menu-icon{background:transparent!important}
html.a11y-high-contrast .menu-icon::before,html.a11y-high-contrast .menu-icon::after{background:#182011!important}
html.a11y-high-contrast #cc-main{--cc-bg:#fff;--cc-primary-color:#182011;--cc-secondary-color:#182011;--cc-footer-bg:#fff;--cc-btn-primary-bg:#182011;--cc-btn-primary-color:#fff}
html.a11y-links body a{text-decoration:underline!important;text-underline-offset:.2em;text-decoration-thickness:2px}
html.a11y-focus :focus-visible{outline:3px solid #2e3221!important;outline-offset:3px!important;box-shadow:0 0 0 7px #e4a729!important}
main#main{scroll-margin-top:120px}
.legal-content table caption{text-align:left;font-weight:600;margin-bottom:12px}
.legal-page .legal-updated{font:12px/1.6 var(--body);color:var(--brown);margin-top:18px}
.legal-content .legal-table-wrap{max-width:100%;overflow:auto}
@media(max-width:1100px){.site-footer .footer-legal-controls{width:100%;justify-content:center}}
@media(max-width:760px){
 .a11y-launcher,.cookie-launcher{bottom:max(16px,env(safe-area-inset-bottom));width:48px;height:48px}
 .a11y-launcher{left:16px}.cookie-launcher{left:80px}
 .site-footer .footer-legal-controls{grid-template-columns:minmax(0,1fr) 48px;gap:12px}
 .site-footer .cookie-footer-button{width:48px;height:48px;flex-basis:48px}
 #cc-main .cm__link-group{grid-template-columns:minmax(0,1fr) 48px}
 #cc-main .cookie-accessibility-button{width:48px;height:48px;min-height:48px}
 #cc-main .cm .cm__body{flex-direction:column}
 #cc-main .cm .cm__btns{max-width:none;border-left:0;min-width:0}
 #cc-main .cm .cm__btn{min-width:0;width:100%}
}
html.a11y-text-enlarged #cc-main .cm__body{flex-direction:column}
html.a11y-text-enlarged #cc-main .cm__btns{max-width:none;border-left:0}
html.a11y-text-enlarged #cc-main .cm__btn{min-width:0}
@media(forced-colors:active){.a11y-launcher,.cookie-launcher,.cookie-footer-button,.a11y-dialog{border:1px solid ButtonText}.a11y-dialog::backdrop{background:Canvas}.a11y-dialog input{forced-color-adjust:auto}}

/* Social rows match the footer of daniolives.com without provider embeds. */
.site-footer .footer-column nav.footer-profile-icons{flex-direction:row;align-items:center;gap:8px;padding:10px 0 0}
.site-footer .footer-column .footer-profile-icons a{display:grid;align-items:center;justify-items:start;width:28px;height:28px;min-height:28px;padding:0;border:0;color:#fff;text-decoration:none}
.site-footer .footer-profile-icons a svg{display:block;width:16px;height:16px}
.site-footer .footer-profile-icons a:focus-visible{outline:3px solid #fff;outline-offset:3px;border-radius:3px}
html.a11y-high-contrast .site-footer .footer-profile-icons a:focus-visible{outline-color:#182011}

/* Pointer arrows enhance the existing project controls without changing the cards. */
.project-edge-cursor{position:fixed;left:var(--edge-x,0px);top:var(--edge-y,0px);z-index:75;width:52px;height:52px;padding:0;border:1px solid var(--earth);border-radius:50%;display:grid;place-items:center;background:var(--earth);color:var(--dark);box-shadow:0 5px 22px #0003;transform:translate(-50%,-50%);opacity:0;visibility:hidden;pointer-events:none}
.project-edge-cursor.is-visible{opacity:1;visibility:visible}
.project-edge-cursor.is-previous svg{transform:rotate(180deg)}
.project-showcase.has-edge-cursor .project-story{cursor:none}
.project-stories>[role="tabpanel"]:focus-visible{outline:3px solid var(--dark);outline-offset:3px;box-shadow:0 0 0 7px white;border-radius:40px}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.project-edge-cursor{display:none}}

/* Contact CTA follows daniolives.com with Menorca's established tokens. */
main>.section.contact.contact-cta{display:block;padding-block:var(--band-padding);background:var(--olive);color:white;scroll-margin-top:120px}
.contact.contact-cta h2{font-size:clamp(36px,4.8vw,68px);font-weight:650;line-height:1.1;max-width:1100px;margin:0}
.contact.contact-cta .conversation-cta{margin-top:40px;max-width:100%;white-space:normal;background:white;border-color:white;color:var(--dark)}
.contact.contact-cta .conversation-cta:hover{background:var(--earth);border-color:var(--earth);color:var(--dark)}
@media(max-width:760px){.contact.contact-cta h2{font-size:clamp(28px,7.5vw,40px)}.contact.contact-cta .conversation-cta{margin-top:30px}}

/* Both navigation disclosures share the existing appearance and keyboard rules. */
.header .consultancy-dropdown{width:min(420px,calc(100vw - 44px));max-height:calc(100dvh - 150px);overflow-y:auto;overscroll-behavior:contain}
.header .consultancy-dropdown>a:last-child{font-size:14px;border-top:0;border-radius:16px;padding:14px 16px;margin-top:0}
.consultancy-dropdown>a>span[aria-hidden]{flex-shrink:0}
#mobile-menu .consultancy-dropdown>a:last-child{font-size:14px;padding-top:12px}

/* Hover satellites use the existing service labels and Menorca palette. */
.page-hub .service-copy{position:relative;min-width:0}
.page-hub .service-row:hover,.page-hub .service-row:focus-visible{z-index:8}
.page-hub .service-copy .floating-tags{position:absolute;inset:0;display:block;opacity:1;transform:none;pointer-events:none;z-index:8;grid-column:auto;grid-row:auto}
.page-hub .floating-tags .service-satellite{position:absolute;left:var(--tag-x,50%);top:var(--tag-y,-22px);width:max-content;max-width:min(190px,90%);padding:0;background:transparent;box-shadow:none;opacity:0;transform:translate(-50%,-50%) translateY(12px) scale(.75) rotate(var(--tag-rotation,0deg));transition:opacity .22s,transform .5s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--tag-index) * 65ms)}
.page-hub .floating-tags .service-satellite-label{display:block;transform:none;padding:7px 14px;border-radius:50px;background:var(--earth);color:var(--dark);box-shadow:0 3px 12px #2e322117;font:400 11px/1.4 var(--body)}
.page-hub .service-satellite:nth-child(2) .service-satellite-label{background:var(--olive);color:white}
.page-hub .service-satellite:nth-child(3) .service-satellite-label{background:var(--yellow);color:var(--dark)}
.page-hub .service-row:hover .service-satellite,.page-hub .service-row:focus-visible .service-satellite{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--tag-rotation,0deg))}
.page-hub .service-row:hover .service-satellite-label,.page-hub .service-row:focus-visible .service-satellite-label{animation:serviceSatelliteFloat 3.8s ease-in-out infinite alternate;animation-delay:calc(var(--tag-index) * -.8s)}
@keyframes serviceSatelliteFloat{from{transform:translate(-2px,3px)}to{transform:translate(2px,-4px)}}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce),(max-width:760px){
 .page-hub .service-copy .floating-tags{position:static;display:flex;flex-wrap:wrap;height:auto;gap:8px;margin-top:12px}
 .page-hub .floating-tags .service-satellite,.page-hub .service-row:hover .service-satellite,.page-hub .service-row:focus-visible .service-satellite{position:static;opacity:1;transform:none;transition:none;max-width:100%}
 .page-hub .floating-tags .service-satellite-label,.page-hub .service-row:hover .service-satellite-label,.page-hub .service-row:focus-visible .service-satellite-label{animation:none;padding:5px 9px;font-size:9px}
}
html.a11y-no-motion .page-hub .service-copy .floating-tags,html.a11y-text-enlarged .page-hub .service-copy .floating-tags{position:static;display:flex;flex-wrap:wrap;height:auto;gap:8px;margin-top:12px}
html.a11y-no-motion .page-hub .floating-tags .service-satellite,html.a11y-text-enlarged .page-hub .floating-tags .service-satellite{position:static;opacity:1;transform:none;transition:none;max-width:100%}
html.a11y-no-motion .page-hub .floating-tags .service-satellite-label,html.a11y-text-enlarged .page-hub .floating-tags .service-satellite-label{animation:none}
/* Scoped contrast corrections; retain the existing colors, geometry and states. */
.hero .round-link{color:var(--dark)}
.dani :focus-visible{outline-color:var(--dark)}
/* Keep informative labels and control states legible in the default palette. */
.header .desktop-nav>a:not(.nav-contact):hover{color:var(--dark)}
.project-progress>button>span{box-shadow:inset 0 0 0 1px var(--dark)}
.back-to-top:focus-visible{outline:3px solid var(--dark);outline-offset:3px;box-shadow:0 0 0 7px white}
.dani .eyebrow>span{opacity:1}
:is(.web-type,.sem-mode,.social-mode):nth-child(3)>.eyebrow{color:var(--dark)}
.project-story-copy>.eyebrow{color:white}
/* Low windows include browser zoom: keep page content clear of the closed header. */
@media(max-height:500px){
 .header:not(:has(.menu-toggle[aria-expanded="true"],.services-disclosure[open])){position:relative;top:auto}
}
/* Compact-view positioning uses the visible footer control's measured position. */
@media(max-width:760px),(max-height:500px){
 .cookie-footer-visible .back-to-top{bottom:max(var(--compact-back-to-top-bottom,88px),env(safe-area-inset-bottom))}
}
