/* ============================================================
   dop · SHARED FOOTER  (parallel to dop-header)
   One source of truth for the site footer. Self-contained:
   it declares its own tokens + fonts on .dop-foot so it
   renders identically on every page regardless of page CSS.
   Markup + links live in home/dop-footer.js.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&family=Quicksand:wght@400;500;600;700&display=swap');

.dop-foot{
  /* local token scope — independent of page :root */
  --paper:#F6F1E8; --paper-2:#FBF8F2; --sand:#EADFCB; --stone:#D6C7AC; --clay:#B6A584;
  --green:#15634A; --green-700:#0F4536; --signal:#1F8A63;
  --ink:#1C1A14; --ink-soft:#5C574C; --ink-faint:#928B7C;
  --line:rgba(28,26,20,.14);
  --font-ui:"Quicksand", system-ui, sans-serif;
  --font-text:"Cormorant Garamond", Georgia, serif;
  --font-display:"Playfair Display", Georgia, serif;
  --shell-gutter:clamp(20px, 5vw, 88px);

  background:
    radial-gradient(120% 80% at 50% -10%, var(--paper-2), transparent 60%),
    linear-gradient(180deg, var(--paper) 0%, var(--sand) 130%);
  color:var(--ink); border-top:1px solid var(--line);
  padding:clamp(48px,7vw,80px) var(--shell-gutter) clamp(30px,4vw,44px);
  font-family:var(--font-ui);
}
.dop-foot a{text-decoration:none; color:inherit;}
.dop-foot .sf-inner{max-width:1180px; margin:0 auto;}

/* ---- instagram sub-row ---- */
.dop-foot .sf-sub-row{display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(24px,4vw,56px); align-items:center; padding:clamp(26px,3vw,40px) clamp(24px,3vw,40px); margin-bottom:clamp(30px,4.5vw,46px); background:var(--paper-2); border:1px solid var(--line); border-radius:20px; box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 16px 40px -34px rgba(28,26,20,.5);}
.dop-foot .sf-kicker{margin:0 0 12px; font:600 11px/1 var(--font-ui); letter-spacing:.22em; text-transform:uppercase; color:var(--green);}
.dop-foot .sf-title{margin:0; max-width:30ch; font-family:var(--font-display); font-weight:500; font-size:clamp(18px,1.9vw,24px); line-height:1.3; letter-spacing:-.01em; color:var(--ink); text-wrap:balance;}
.dop-foot .sf-title em{font-style:italic; color:var(--green);}
.dop-foot .sf-ig{
  justify-self:end; display:inline-flex; align-items:center; gap:11px;
  font:700 14px/1 var(--font-ui); letter-spacing:.03em;
  background:var(--green); color:var(--paper); border-radius:100px; padding:17px 28px;
  transition:background .25s, transform .2s;
}
.dop-foot .sf-ig:hover{background:var(--green-700); transform:translateY(-1px);}
.dop-foot .sf-ig svg{flex:0 0 auto;}

/* ---- contact + service-area map ---- */
.dop-foot .sf-contact{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(26px,4vw,56px); align-items:stretch; padding-bottom:clamp(30px,4.5vw,46px); margin-bottom:clamp(30px,4.5vw,46px); border-bottom:1px solid var(--line);}
.dop-foot .sf-contact-info{display:flex; flex-direction:column;}
.dop-foot .sf-contact-list{list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:13px;}
.dop-foot .sf-contact-list li{display:flex; align-items:flex-start; gap:11px; font:600 15px/1.45 var(--font-ui); color:var(--ink);}
.dop-foot .sf-contact-list li svg{width:17px; height:17px; flex:0 0 auto; margin-top:2px; color:var(--green);}
.dop-foot .sf-contact-list a{color:inherit; transition:color .2s;}
.dop-foot .sf-contact-list a:hover{color:var(--green);}
.dop-foot .sf-area{margin:18px 0 0; font-family:var(--font-text); font-style:italic; font-size:18px; line-height:1.42; color:var(--ink-soft); max-width:32ch;}
.dop-foot .sf-area em{font-style:italic; color:var(--green); font-weight:600;}

.dop-foot .sf-map{position:relative; min-height:210px; border-radius:18px; overflow:hidden; border:1px solid var(--line); box-shadow:0 16px 40px -30px rgba(28,26,20,.5);}
.dop-foot .sf-map .map-bg{position:absolute; inset:0; width:100%; height:100%; display:block;}
.dop-foot .sf-map .m-base{fill:var(--paper-2);}
.dop-foot .sf-map .m-water{fill:#C7DCD2; stroke:rgba(21,99,74,.42); stroke-width:1.2; stroke-linejoin:round;}
.dop-foot .sf-map .m-river{fill:none; stroke:#C8D6CC; stroke-width:3.6; stroke-linecap:round; stroke-linejoin:round;}
.dop-foot .sf-map .m-road{fill:none; stroke:var(--stone); stroke-linecap:round; stroke-linejoin:round;}
.dop-foot .sf-map .m-road.major{stroke-width:3;}
.dop-foot .sf-map .m-road.minor{stroke-width:1.5; stroke:var(--clay); opacity:.65;}
.dop-foot .sf-map .m-ext{fill:rgba(21,99,74,.05); stroke:rgba(21,99,74,.5); stroke-width:1.2; stroke-dasharray:3 7; stroke-linecap:round;}
.dop-foot .sf-map .m-core{fill:rgba(21,99,74,.12); stroke:rgba(21,99,74,.65); stroke-width:1.5;}
.dop-foot .sf-map .m-zlabel{font:700 7px/1 var(--font-ui); letter-spacing:.18em; fill:var(--green);}
.dop-foot .sf-map .m-zlabel.ext{fill:var(--clay);}
.dop-foot .sf-map .m-pin{fill:var(--green);}
.dop-foot .sf-map .m-pin.ext{fill:var(--paper); stroke:var(--green); stroke-width:1.5;}
.dop-foot .sf-map .m-pin-major{fill:var(--green);}
.dop-foot .sf-map .m-pin-major-ring{fill:none; stroke:var(--paper); stroke-width:1.6; stroke-linecap:round;}
.dop-foot .sf-map .m-pulse{fill:none; stroke:var(--green); stroke-width:1.3;}
.dop-foot .sf-map .m-city{font:600 8px/1 var(--font-ui); fill:var(--ink); paint-order:stroke; stroke:var(--paper-2); stroke-width:2.6px; stroke-linejoin:round;}
.dop-foot .sf-map .m-city.ext{fill:var(--ink-soft);}
.dop-foot .sf-map .m-city.major{font-weight:700; font-size:9.5px; fill:var(--green); stroke-width:3px;}
.dop-foot .sf-map .m-grid{stroke:rgba(28,26,20,.05); stroke-width:1;}
.dop-foot .sf-map .m-park{fill:rgba(31,138,99,.10);}
.dop-foot .sf-map .m-mtn{fill:none; stroke:rgba(28,26,20,.16); stroke-width:1.1; stroke-linecap:round;}
.dop-foot .sf-map .m-coast{fill:none; stroke:rgba(21,99,74,.32); stroke-width:1.1;}
.dop-foot .sf-map .m-rail{fill:none; stroke:var(--green); stroke-width:1.1; stroke-dasharray:1 4.5; stroke-linecap:round; opacity:.5;}
.dop-foot .sf-map .m-compass{fill:var(--ink-soft); opacity:.5;}
.dop-foot .sf-map .m-compass .n{fill:var(--green);}
.dop-foot .sf-map .m-scalebar{stroke:var(--ink-soft); stroke-width:1.4; stroke-linecap:round; opacity:.55;}
.dop-foot .sf-map .m-scaletx{font:600 6px/1 var(--font-ui); letter-spacing:.06em; fill:var(--ink-faint);}
.dop-foot .sf-map-chip{position:absolute; left:14px; bottom:14px; z-index:4; font:700 10.5px/1 var(--font-ui); letter-spacing:.14em; text-transform:uppercase; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:100px; padding:6px 12px; box-shadow:0 4px 12px -6px rgba(28,26,20,.4);}
@media (prefers-reduced-motion: no-preference){
  .dop-foot .sf-map .m-pulse{animation:dopf-mpulse 2.8s ease-out infinite;}
  @keyframes dopf-mpulse{0%{opacity:.55; r:6;}100%{opacity:0; r:21;}}
}

/* ---- nav + socials row ---- */
.dop-foot .sf-top{
  display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:start;
  padding-bottom:clamp(34px,5vw,52px); border-bottom:1px solid var(--line);
}
.dop-foot .sf-navs{display:flex; gap:clamp(34px,6vw,72px); padding-top:2px;}
.dop-foot .sf-navcol{display:flex; flex-direction:column; gap:12px;}
.dop-foot .sf-nav-label{margin:0 0 3px; font:600 10.5px/1 var(--font-ui); letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint);}
.dop-foot .sf-navcol a{font:600 13px/1 var(--font-ui); letter-spacing:.02em; color:var(--ink-soft); transition:color .2s;}
.dop-foot .sf-navcol a:hover{color:var(--green);}
.dop-foot .sf-follow{display:flex; flex-direction:column; gap:10px; align-items:flex-end;}
.dop-foot .sf-follow-label{font:600 10.5px/1 var(--font-ui); letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint);}
.dop-foot .sf-socials{display:flex; gap:10px;}
.dop-foot .sf-social{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  display:grid; place-items:center; color:var(--ink-soft); transition:border-color .2s, color .2s;
}
.dop-foot .sf-social:hover{border-color:var(--green); color:var(--green);}

/* ---- legal / bottom row ---- */
.dop-foot .sf-bottom{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  padding-top:clamp(20px,3vw,30px); font:500 12px/1 var(--font-ui); color:var(--ink-faint);
}
.dop-foot .sf-legal{display:flex; gap:16px;}
.dop-foot .sf-legal a{color:inherit; transition:color .2s;}
.dop-foot .sf-legal a:hover{color:var(--ink);}

/* ---- responsive ---- */
@media (max-width:760px){ .dop-foot .sf-sub-row{grid-template-columns:1fr;} .dop-foot .sf-ig{justify-self:start;} .dop-foot .sf-contact{grid-template-columns:1fr;} .dop-foot .sf-map{min-height:180px;} .dop-foot .sf-top{grid-template-columns:1fr;} .dop-foot .sf-navs{display:grid; grid-template-columns:1fr 1fr; gap:26px 20px;} }
@media (max-width:680px){ .dop-foot .sf-top{grid-template-columns:1fr; gap:22px;} .dop-foot .sf-bottom{flex-direction:column; align-items:flex-start;} .dop-foot .sf-follow{align-items:flex-start;} }
