/* Shared responsive shell owner: footer.
   Kept outside page families so every route receives the same component at
   every width.  Values use the transitional semantic tokens until the common
   token migration is complete; no page stylesheet may restyle these rules. */
footer{margin-top:var(--footer-top-gap,var(--rhythm-module-footer));border-top:1px solid var(--line);padding:22px 0 var(--footer-bottom-pad,calc(12px + env(safe-area-inset-bottom)));font-size:13.5px;color:var(--muted)}
footer .wrap > * + *{margin-top:12px}
.fcard{border:1px solid var(--line);border-radius:16px;padding:18px}
.flogo{height:15px;width:auto;margin-bottom:14px;opacity:.9}
.fclub{color:var(--muted);margin-bottom:10px}
.fclub b{color:var(--text);font-weight:600}
.faddr{color:var(--muted);margin-bottom:6px}
.fmetro{display:flex;flex-direction:column;gap:2px;color:#847f76;font-size:var(--fs-meta)}
.fmetro span{display:flex;align-items:center;gap:7px}
.fmetro span::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.7;flex-shrink:0}
.fgrid2{display:grid;grid-template-columns:60fr 40fr;gap:14px;padding-top:14px;padding-bottom:14px}
.fcol-label{font-family:'Manrope';font-weight:500;font-size:var(--fs-meta);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text);margin-bottom:14px}
.fcol a{color:var(--muted);text-decoration:none;display:block;padding:12px 0;white-space:nowrap;transition:color var(--t-micro)}
.fcol:not(.fcol-wide) a{white-space:normal}
.fcontact{padding:16px 18px}
.fcontact .btn{width:100%}
.flegal-btn{width:100%;min-height:44px;margin-top:10px;padding:8px 0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:var(--fs-meta);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:color var(--t-base)}
.flegal-btn span{color:var(--accent-text);transition:transform var(--t-base)}
@media(hover:hover) and (pointer:fine){.fcol a:hover{color:var(--text)}.flegal-btn:hover{color:var(--text)}.flegal-btn:hover span{transform:translateX(3px)}}
@media(width < 1024px){
  /* Mobile footer is a single shell component.  Its boundary and content
     offsets are intentionally smaller than a full page section so it reads
     as the end of a page rather than another empty module. */
  /* Cards establish the footer boundary on mobile.  Keep the page-to-footer
     transition intentionally short (24px in total) and continuous instead of
     splitting it with a visually redundant full-width rule. */
  footer{margin-top:16px;border-top:0;padding-top:8px}
  .fgrid2{padding-block:10px}.fcol-label{margin-bottom:6px}.fcontact .fcol-label{display:none}
  .fcol a{min-height:44px;padding:7px 0;box-sizing:border-box;display:flex;align-items:center;line-height:1.45}
  .fcontact .flegal-btn{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
}
@media(768px <= width < 1024px){
  footer .wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}footer .wrap > * + *{margin-top:0}
  .fbrand{grid-column:1;grid-row:1}.fgrid2:not(.ar-footer-utility){display:contents}
  .fgrid2:not(.ar-footer-utility) .fcol{border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-sizing:border-box}
  .fgrid2 .fcol-wide{grid-column:2;grid-row:1}.fgrid2 .fcol:not(.fcol-wide){grid-column:1;grid-row:2}.fzone{grid-column:2;grid-row:2}
  .fzone .fcontact{height:100%;box-sizing:border-box}body.pg-arendatoram footer .fbrand{grid-row:1 / span 2}
  body.pg-arendatoram footer .fgrid2.ar-footer-utility{display:block;grid-column:2;grid-row:1}
}
@media(min-width:1024px){
  footer{padding:48px 0 var(--footer-bottom-pad,32px)}footer .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0;row-gap:0;align-items:stretch}footer .wrap > * + *{margin-top:0}
  .fcard{border:none;background:transparent;padding:0}.fgrid2{display:contents}.fcontact{padding:0;border-left:none}.fcol a{padding:12px 0}
  .fbrand{grid-column:1;grid-row:1;align-self:stretch;display:flex;flex-direction:column}.fgrid2 .fcol-wide{grid-column:2;grid-row:1}.fgrid2 .fcol:not(.fcol-wide){grid-column:3;grid-row:1}.fzone{grid-column:4;grid-row:1;align-self:stretch}
  .fgrid2 .fcol,.fzone{padding-left:var(--grid-gap);border-left:1px solid var(--line)}.fbrand .flogo{height:13px;margin:1px 0 18px;align-self:flex-start}
  footer .fcol-label{min-height:16px;margin:0 0 18px;line-height:16px}.fbrand .fmetro{display:flex;flex-direction:column;gap:6px;margin-top:20px}
  .fcontact{height:100%;display:grid;grid-template-rows:repeat(3,auto);align-content:start;gap:14px}.fcontact .flegal-btn{margin-top:0;justify-content:flex-start;padding-inline:2px}
  .fgrid2.ar-footer-utility{display:block;grid-column:2 / span 2;grid-row:1}.fgrid2.ar-footer-utility .fcol{grid-column:auto;grid-row:auto}
}
