/* Footer: night-wine block with drifting brand waves on top, CTA band, 4 columns (brand · links · links · contact),
   giant outlined wordmark, bottom bar. Light tone = ivory. Phone: brand → 2 link columns side by side → contact. */
.sdo-w--footer.sdo-w{padding:0;background:none}
.sdo-w--footer .sdo-ft{position:relative;overflow:hidden;isolation:isolate;padding:clamp(72px,10vw,140px) clamp(20px,5vw,72px) 0;color:var(--sdo-ink);background:var(--sdo-ivory)}
.sdo-w--footer.sdo-tone--dark .sdo-ft{color:var(--sdo-ivory);background:radial-gradient(70% 55% at 85% 0%,color-mix(in srgb,var(--sdo-wine) 55%,transparent),transparent 70%),radial-gradient(50% 40% at 0% 100%,color-mix(in srgb,var(--sdo-wine) 30%,transparent),transparent 70%),var(--sdo-night)}
.sdo-bgm-none .sdo-w--footer .sdo-ft,.sdo-bgm-custom .sdo-w--footer .sdo-ft{background:none}
.sdo-w--footer .sdo-ft.is-bleed{width:calc(100vw - var(--sdo-sbw,0px));margin-inline-start:calc(50% - (100vw - var(--sdo-sbw,0px)) / 2)}
.sdo-w--footer .sdo-ft__in{position:relative;max-width:1320px;margin-inline:auto}

/* waves */
.sdo-w--footer .sdo-ft__waves{position:absolute;z-index:-1;top:0;left:0;right:auto;width:200%;height:clamp(70px,9vw,130px);fill:none;stroke-linecap:round;animation:sdo-ft-drift 46s linear infinite;pointer-events:none}
.sdo-w--footer .sdo-ft__waves path{stroke:var(--sdo-sand);stroke-width:1.4;vector-effect:non-scaling-stroke;opacity:.28}
.sdo-w--footer .sdo-ft__waves path:nth-child(2){stroke:var(--sdo-wine);opacity:.5}
.sdo-w--footer.sdo-tone--dark .sdo-ft__waves path:nth-child(2){stroke:var(--sdo-ivory);opacity:.12}
.sdo-w--footer .sdo-ft__waves path:nth-child(3){opacity:.14}
@keyframes sdo-ft-drift{to{transform:translateX(-50%)}}

/* CTA band */
.sdo-w--footer .sdo-ft__cta{display:grid;gap:28px;align-items:end;padding-bottom:clamp(40px,6vw,72px);margin-bottom:clamp(44px,6vw,80px);border-bottom:1px solid var(--sdo-line)}
@media(min-width:960px){.sdo-w--footer .sdo-ft__cta{grid-template-columns:minmax(0,1.5fr) auto;gap:56px}}
.sdo-w--footer .sdo-ft__eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:16px;font-size:.88rem;font-weight:600;color:var(--sdo-sand-deep)}
.sdo-w--footer.sdo-tone--dark .sdo-ft__eyebrow{color:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__mk{width:46px;height:auto}
.sdo-w--footer .sdo-ft__title{margin:0;font-family:var(--sdo-head-ff);font-size:clamp(1.9rem,4.4vw,3.6rem);font-weight:700;line-height:1.3;color:inherit;max-width:16em;text-wrap:balance}
.sdo-w--footer .sdo-ft__btns{display:flex;flex-wrap:wrap;gap:12px}
.sdo-w--footer .sdo-ft__btns .sdo-btn .sdo-ico{font-size:19px}

/* main columns */
.sdo-w--footer .sdo-ft__main{display:grid;gap:44px clamp(28px,4vw,64px);grid-template-columns:repeat(2,minmax(0,1fr))}
.sdo-w--footer .sdo-ft__brand,.sdo-w--footer .sdo-ft__contact{grid-column:1/-1}
@media(min-width:768px){.sdo-w--footer .sdo-ft__main{grid-template-columns:repeat(3,minmax(0,1fr))}.sdo-w--footer .sdo-ft__contact{grid-column:auto}}
@media(min-width:1100px){.sdo-w--footer .sdo-ft__main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr)}.sdo-w--footer .sdo-ft__brand{grid-column:auto}}
.sdo-w--footer .sdo-ft__logo{display:inline-block;color:inherit;text-decoration:none}
.sdo-w--footer .sdo-ft__logo img{display:block;width:150px;max-width:100%;height:auto}
.sdo-w--footer .sdo-ft__wordmark{display:inline-flex;align-items:baseline;gap:14px;font-family:var(--sdo-head-ff);font-size:clamp(2.4rem,4vw,3.2rem);font-weight:700;line-height:1;color:inherit}
.sdo-w--footer .sdo-ft__wordmark bdi{font-family:inherit;font-size:.3em;font-weight:500;letter-spacing:.32em;color:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__tagline{margin:14px 0 0;font-family:var(--sdo-head-ff);font-size:1.15rem;color:var(--sdo-sand-deep)}
.sdo-w--footer.sdo-tone--dark .sdo-ft__tagline{color:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__about{margin:18px 0 0;max-width:30em;line-height:1.95;color:var(--sdo-muted);text-wrap:pretty}
.sdo-w--footer .sdo-ft__owner{display:flex;align-items:center;gap:10px;margin:18px 0 0;font-size:.9rem;color:var(--sdo-muted)}
.sdo-w--footer .sdo-ft__owner .sdo-ico{flex:none;font-size:18px;color:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__social{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.sdo-w--footer .sdo-ft__social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--sdo-line);color:inherit;font-size:19px;transition:background .6s var(--sdo-ease),color .6s var(--sdo-ease),border-color .6s var(--sdo-ease),transform .6s var(--sdo-ease)}
.sdo-w--footer .sdo-ft__social a:hover,.sdo-w--footer .sdo-ft__social a:focus-visible{background:var(--sdo-sand);border-color:var(--sdo-sand);color:var(--sdo-deep);transform:translateY(-3px)}
.sdo-w--footer .sdo-ft__social .sdo-ico,.sdo-w--footer .sdo-ft__social svg{width:1em;height:1em}
.sdo-w--footer .sdo-ft__hint{margin:18px 0 0;padding:10px 14px;border:1px dashed var(--sdo-line);border-radius:12px;font-size:.82rem;color:var(--sdo-muted)}
.sdo-w--footer .sdo-ft__h{display:flex;align-items:center;gap:10px;margin:0 0 20px;font-family:var(--sdo-head-ff);font-size:1.2rem;font-weight:700;color:inherit}
.sdo-w--footer .sdo-ft__h::after{content:"";flex:1;max-width:44px;height:1px;background:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__links{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sdo-w--footer .sdo-ft__links li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.sdo-w--footer .sdo-ft__links li>span{color:var(--sdo-muted);line-height:1.6}
.sdo-w--footer .sdo-ft__links a{position:relative;color:var(--sdo-muted);text-decoration:none;line-height:1.6;transition:color .5s var(--sdo-ease)}
.sdo-w--footer .sdo-ft__links a span{background:linear-gradient(currentColor,currentColor) no-repeat 100% 100%/0 1px;padding-bottom:2px;transition:background-size .6s var(--sdo-ease)}
.sdo-w--footer .sdo-ft__links a:hover,.sdo-w--footer .sdo-ft__links a:focus-visible{color:var(--sdo-ink)}
.sdo-w--footer.sdo-tone--dark .sdo-ft__links a:hover,.sdo-w--footer.sdo-tone--dark .sdo-ft__links a:focus-visible{color:#fff}
.sdo-w--footer .sdo-ft__links a:hover span,.sdo-w--footer .sdo-ft__links a:focus-visible span{background-size:100% 1px;background-position:0 100%}
.sdo-w--footer .sdo-ft__tag{padding:2px 9px;border-radius:99px;font-size:.7rem;font-weight:600;color:var(--sdo-sand-deep);background:var(--sdo-sand-wash)}
.sdo-w--footer.sdo-tone--dark .sdo-ft__tag{color:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__contact ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sdo-w--footer .sdo-ft__contact li{margin:0}
.sdo-w--footer .sdo-ft__contact a,.sdo-w--footer .sdo-ft__row{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none}
.sdo-w--footer .sdo-ft__ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:19px;color:var(--sdo-sand);border:1px solid color-mix(in srgb,var(--sdo-sand) 36%,transparent);background:var(--sdo-sand-wash);transition:background .6s var(--sdo-ease),color .6s var(--sdo-ease)}
.sdo-w--footer:not(.sdo-tone--dark) .sdo-ft__ic{color:var(--sdo-wine)}
.sdo-w--footer .sdo-ft__contact a:hover .sdo-ft__ic,.sdo-w--footer .sdo-ft__contact a:focus-visible .sdo-ft__ic{background:var(--sdo-sand);color:var(--sdo-deep)}
.sdo-w--footer .sdo-ft__ct{display:flex;flex-direction:column;min-width:0;line-height:1.5;overflow-wrap:anywhere}
.sdo-w--footer .sdo-ft__ct small{font-size:.74rem;color:var(--sdo-muted)}

/* giant wordmark */
.sdo-w--footer .sdo-ft__word{margin:clamp(48px,7vw,96px) 0 clamp(8px,1.4vw,18px);user-select:none;pointer-events:auto}
.sdo-w--footer .sdo-ft__word svg{display:block;width:100%;height:auto;overflow:visible}
.sdo-w--footer .sdo-ft__word text{font-family:var(--sdo-head-ff);font-size:262px;font-weight:700;letter-spacing:0}
.sdo-w--footer .sdo-ftw__s0{stop-color:var(--sdo-sand);stop-opacity:0}
.sdo-w--footer .sdo-ftw__s1{stop-color:var(--sdo-sand);stop-opacity:.5}
.sdo-w--footer .sdo-ftw__s2{stop-color:var(--sdo-ivory);stop-opacity:.9}
.sdo-w--footer .sdo-ftw__s3{stop-color:var(--sdo-sand);stop-opacity:.95}
.sdo-w--footer:not(.sdo-tone--dark) .sdo-ftw__s2{stop-color:var(--sdo-sand);stop-opacity:.95}
.sdo-w--footer .sdo-ftw__stroke text{fill:none;stroke:var(--sdo-sand);stroke-width:1.8;stroke-dasharray:2600;stroke-dashoffset:0}
.sdo-w--footer .sdo-ftw__waves path{fill:none;stroke:var(--sdo-sand);stroke-width:2.6;opacity:.75}
.sdo-w--footer .sdo-ftw__waves path:nth-child(2n){stroke:var(--sdo-ivory);opacity:.38}
.sdo-w--footer:not(.sdo-tone--dark) .sdo-ftw__waves path:nth-child(2n){stroke:var(--sdo-wine);opacity:.45}
.sdo-w--footer .sdo-ftw__light{opacity:0;transition:opacity 1s var(--sdo-ease)}
.sdo-w--footer .sdo-ft__word.is-hover .sdo-ftw__light{opacity:1}
/* motion: outline draws itself on reveal, then the inside fades in; waves flow; a sheen passes every 7s */
.sdo-w--footer .sdo-ft__word.sdo-rv{opacity:1;transform:none}
.sdo-w--footer .sdo-ft__word:not(.is-fx-none).sdo-rv .sdo-ftw__stroke text{stroke-dashoffset:2600}
.sdo-w--footer .sdo-ft__word:not(.is-fx-none).sdo-rv .sdo-ftw__in{opacity:0}
.sdo-w--footer .sdo-ft__word:not(.is-fx-none).sdo-rv.is-in .sdo-ftw__stroke text{animation:sdo-ftw-draw 1.8s var(--sdo-ease) forwards}
.sdo-w--footer .sdo-ft__word:not(.is-fx-none).sdo-rv.is-in .sdo-ftw__in{animation:sdo-ftw-fill 1s var(--sdo-ease) .45s forwards}
.sdo-w--footer .sdo-ftw__waves{animation:sdo-ftw-flow 4.5s linear infinite}
.sdo-w--footer .sdo-ftw__sheen{transform:skewX(-18deg);animation:sdo-ftw-sheen 3.6s var(--sdo-ease) 1s infinite}
@keyframes sdo-ftw-draw{to{stroke-dashoffset:0}}
@keyframes sdo-ftw-fill{to{opacity:1}}
@keyframes sdo-ftw-flow{to{transform:translateX(-360px)}}
@keyframes sdo-ftw-sheen{0%{transform:translateX(0) skewX(-18deg)}55%,100%{transform:translateX(2050px) skewX(-18deg)}}
.sdo-editor .sdo-w--footer .sdo-ft__word .sdo-ftw__in{opacity:1!important}
.sdo-editor .sdo-w--footer .sdo-ft__word .sdo-ftw__stroke text{stroke-dashoffset:0!important}

/* bottom bar */
.sdo-w--footer .sdo-ft__bar{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;padding:24px 0 28px;border-top:1px solid var(--sdo-line);font-size:.86rem;color:var(--sdo-muted)}
.sdo-w--footer .sdo-ft__copy{margin:0;flex:1;min-width:16em}
.sdo-w--footer .sdo-ft__legal{display:flex;flex-wrap:wrap;gap:8px 22px}
.sdo-w--footer .sdo-ft__legal a{color:inherit;text-decoration:none;transition:color .5s var(--sdo-ease)}
.sdo-w--footer .sdo-ft__legal a:hover{color:var(--sdo-sand)}
.sdo-w--footer .sdo-ft__top{all:unset;box-sizing:border-box;cursor:pointer;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;font-size:20px;color:var(--sdo-accent-ink);background:var(--sdo-accent);transition:transform .6s var(--sdo-ease),background .6s var(--sdo-ease)}
.sdo-w--footer .sdo-ft__top:hover{transform:translateY(-4px)}
.sdo-w--footer .sdo-ft__top:focus-visible{outline:2px solid var(--sdo-sand);outline-offset:3px}
.sdo-w--footer:not(.sdo-tone--dark) .sdo-ft__top{--sdo-accent:var(--sdo-wine);--sdo-accent-ink:#fff}

@media(max-width:599px){
	.sdo-w--footer .sdo-ft__btns .sdo-btn{flex:1 1 100%}
	.sdo-w--footer .sdo-ft__bar{justify-content:center;text-align:center}
	.sdo-w--footer .sdo-ft__copy{flex-basis:100%}
	.sdo-w--footer .sdo-ft__legal{justify-content:center}
}
@media (prefers-reduced-motion:reduce){.sdo-w--footer *{transition:none!important;animation:none!important}.sdo-w--footer .sdo-ft__word .sdo-ftw__in{opacity:1!important}.sdo-w--footer .sdo-ft__word .sdo-ftw__stroke text{stroke-dashoffset:0!important}}
/* The theme's own footer wrapper (SDO Theme .sdot-footer, Woodmart .footer-container, Hello / Astra .site-footer...)
   has its own background + top border; it showed as an odd band in the spacing above this block. When this block is
   inside it, the wrapper becomes transparent so the container spacing is plain page background. */
:is(footer,.site-footer,#colophon,.sdot-footer,.footer-container,.elementor-location-footer):has(.sdo-w--footer){background:transparent!important;border-top:0!important;box-shadow:none!important}
@media (prefers-reduced-motion:reduce){.sdo-w--footer .sdo-ft__word .sdo-ftw__in{opacity:1!important}.sdo-w--footer .sdo-ft__word .sdo-ftw__stroke text{stroke-dashoffset:0!important}}
