/* FoodFestival UI · new footer (variant C2). Linked from the footer markup itself: never blocks the first screen.
   Colours: brand navy #1A2870; text #D5DBF2 (9.6:1), secondary #AEB8E0 (7:1), headings white; call to action paprika. */
.ff-footer{
  --ff-f-bg:#1A2870;--ff-f-band:#15205E;--ff-f-bottom:#131C55;--ff-f-line:rgba(255,255,255,.14);
  --ff-f-text:#D5DBF2;--ff-f-muted:#AEB8E0;--ff-f-head:#FFFFFF;--ff-f-chip:rgba(255,255,255,.08);--ff-f-chip-line:rgba(255,255,255,.2);
  background:var(--ff-f-bg);color:var(--ff-f-text);font-size:14px;line-height:22px;margin-top:48px;
}
.ff-footer a{color:var(--ff-f-text);text-decoration:none;transition:color .15s}
.ff-footer a:hover{color:#FFFFFF}
.ff-footer a:focus-visible,.ff-footer button:focus-visible,.ff-footer input:focus-visible{outline:2px solid #FFFFFF;outline-offset:2px;border-radius:4px}
.ff-footer svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ff-footer ul{list-style:none;margin:0;padding:0}
/* Own container with the theme's widths (the theme restyles .container-fluid inside footers, so it is not reused):
   up to 121rem with 2rem sides, and 90% of the window from 992 px (theme Custom CSS) — edges line up with header and content. */
.ff-footer .ff-footer__wrap{box-sizing:border-box;width:100%;max-width:121rem;margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem}
@media (min-width:992px){.ff-footer .ff-footer__wrap{max-width:90%}}

/* trust strip */
.ff-footer__trust{background:var(--ff-f-band);border-bottom:1px solid var(--ff-f-line)}
/* .ff-footer prefix: the list reset above (.ff-footer ul) must not take these paddings away */
.ff-footer .ff-footer__trust-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:20px;padding-bottom:20px}
.ff-footer__trust-item{display:flex;align-items:center;gap:12px;font-weight:500;color:var(--ff-f-head);line-height:20px}
.ff-footer__trust-icon{width:40px;height:40px;flex-shrink:0;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--ff-f-chip);border:1px solid var(--ff-f-chip-line);color:var(--ff-f-muted)}
.ff-footer__trust-icon svg{width:20px;height:20px}

/* main: contacts | link groups */
.ff-footer__main{display:grid;grid-template-columns:360px minmax(0,1fr);column-gap:48px;padding-top:56px;padding-bottom:56px}
.ff-footer__contacts{display:flex;flex-direction:column;gap:18px;min-width:0}
.ff-footer__logo{align-self:flex-start;justify-self:start;display:block;padding:8px 12px;background:#FFFFFF;border-radius:12px}
.ff-footer__logo img{display:block;width:96px;height:auto}
.ff-footer__logo--text{padding:0;background:none;font-size:22px;font-weight:700;color:#FFFFFF}
.ff-footer__about{margin:0;color:var(--ff-f-text)}
.ff-footer__phones{display:flex;flex-direction:column;gap:2px}
.ff-footer__phone{font-size:24px;line-height:32px;font-weight:700;color:#FFFFFF!important;font-variant-numeric:tabular-nums}
.ff-footer__phone--extra{font-size:16px;line-height:24px;font-weight:500}
.ff-footer__hours{font-size:13px;line-height:18px;color:var(--ff-f-muted)}
.ff-footer__actions{display:flex;flex-wrap:wrap;gap:8px}
.ff-footer__cta,.ff-footer__chip{min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border-radius:10px;font-size:14px;font-weight:500;line-height:20px}
.ff-footer__cta{background:#A33F0C;color:#FFFFFF!important}
.ff-footer__cta:hover{background:#8A3700}
.ff-footer__chip{background:var(--ff-f-chip);border:1px solid var(--ff-f-chip-line);color:#FFFFFF!important}
.ff-footer__chip:hover{background:rgba(255,255,255,.14)}
.ff-footer__lines{display:flex;flex-direction:column;gap:10px}
.ff-footer__lines li{display:flex;align-items:flex-start;gap:10px;color:var(--ff-f-muted)}
.ff-footer__lines svg{margin-top:2px}
.ff-footer__lines a{color:var(--ff-f-text)}

/* subscribe: the theme's own form (app.js: input[name=emailsubscr], .js-subscribe-btn) in the footer's look */
.ff-footer__subscribe{display:flex;flex-direction:column;gap:10px;margin:6px 0 0;padding:24px 0 0;border-top:1px solid var(--ff-f-line);max-width:none!important}
.ff-footer__subscribe-label{margin:0;font-size:14px;line-height:20px;font-weight:700;color:var(--ff-f-head)}
.ff-footer__subscribe-label span{display:block;font-weight:400;color:var(--ff-f-muted)}
.ff-footer .ff-footer__subscribe-field{display:flex;gap:8px;margin:0;padding:0;border:0;background:none}
.ff-footer .ff-footer__subscribe-field input{flex:1;min-width:0;height:44px;box-sizing:border-box;margin:0;padding:0 14px;border:1px solid #FFFFFF;border-radius:10px;background:#FFFFFF;font:inherit;font-size:15px;color:#22283A}
.ff-footer .ff-footer__subscribe-btn{height:44px;margin:0;padding:0 18px;border:0;border-radius:10px;background:#FFFFFF;color:#1A2870;font:inherit;font-size:15px;font-weight:500;cursor:pointer;white-space:nowrap}
.ff-footer .ff-footer__subscribe-btn:hover{background:#E3E8F0}
.ff-footer__subscribe-note{margin:0;font-size:12px;line-height:18px;color:var(--ff-f-muted)}

/* link groups: four in a row, the second row separated by a line */
.ff-footer__nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 32px;align-content:start}
.ff-footer__group{min-width:0}
.ff-footer__group:nth-child(n+5){padding-top:32px;border-top:1px solid var(--ff-f-line)}
.ff-footer__heading{display:block;margin:0 0 14px;font-size:14px;line-height:20px;font-weight:700;color:var(--ff-f-head)}
.ff-footer__links ul{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.ff-footer__links li{margin:0;padding:0}
.ff-footer__links a{display:inline-block;font-size:14px;line-height:22px;color:var(--ff-f-text)}
.ff-footer__links li.is-folded{display:none}
.ff-footer__more{display:inline-flex;align-items:center;gap:4px;margin:8px 0 0;padding:0;border:0;background:none;font:inherit;font-size:14px;line-height:22px;font-weight:500;color:var(--ff-f-muted);cursor:pointer}
.ff-footer__more::after{content:"";width:7px;height:7px;margin:-3px 0 0 4px;border:solid currentColor;border-width:0 1.8px 1.8px 0;transform:rotate(45deg)}
.ff-footer__more[aria-expanded="true"]::after{margin-top:3px;transform:rotate(-135deg)}
.ff-footer__more:hover{color:#FFFFFF}
.ff-footer__toggle{display:none}

/* bottom line */
.ff-footer__bottom{background:var(--ff-f-bottom)}
.ff-footer__bottom-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:16px;padding-bottom:16px;font-size:13px;line-height:20px;color:var(--ff-f-muted)}
.ff-footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px}
.ff-footer__legal a{color:var(--ff-f-muted)}
.ff-footer__pay{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ff-footer__pay img{height:24px;width:auto;background:#FFFFFF;border-radius:4px;padding:2px 4px}
.ff-footer__social{display:flex;gap:8px}
.ff-footer__social a{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ff-f-chip);border:1px solid var(--ff-f-chip-line);color:var(--ff-f-muted)}
.ff-footer__social a:hover{color:#FFFFFF}
.ff-footer__social svg{width:18px;height:18px;fill:currentColor;stroke:none;filter:brightness(0) invert(1);opacity:.85}
.ff-footer__social a:hover svg{opacity:1}

/* tablets and small laptops: contacts on top in two columns, groups below */
@media (max-width:1199px){
  .ff-footer__main{grid-template-columns:minmax(0,1fr);row-gap:40px}
  .ff-footer__contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;align-items:start}
  .ff-footer__contacts > *{grid-column:1}
  .ff-footer__subscribe{grid-column:2;grid-row:1 / span 6;margin:0;padding:0;border-top:0}
}

/* phones: contacts first, groups as accordions (script), catalog open with folded long groups */
@media (max-width:767px){
  .ff-footer{margin-top:32px}
  .ff-footer .ff-footer__trust-list{grid-template-columns:minmax(0,1fr);gap:12px;padding-top:20px;padding-bottom:20px}
  .ff-footer__main{padding-top:28px;padding-bottom:8px;row-gap:12px}
  .ff-footer__contacts{display:flex}
  .ff-footer__subscribe{padding-top:20px;border-top:1px solid var(--ff-f-line)}
  .ff-footer__nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;border-top:1px solid var(--ff-f-line);padding-top:16px}
  .ff-footer__group:nth-child(n+5){padding-top:0;border-top:0}
  .ff-footer--js .ff-footer__nav{padding-top:0;row-gap:0}
  .ff-footer--js .ff-footer__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;margin:0;padding:0;border:0;border-bottom:1px solid var(--ff-f-line);background:none;font:inherit;font-size:16px;line-height:22px;font-weight:700;color:var(--ff-f-head);text-align:left;cursor:pointer}
  .ff-footer--js .ff-footer__toggle::after{content:"";width:8px;height:8px;margin-right:6px;border:solid var(--ff-f-muted);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .2s}
  .ff-footer--js .ff-footer__toggle[aria-expanded="true"]::after{transform:rotate(-135deg)}
  .ff-footer--js .ff-footer__toggle--catalog{grid-column:1 / -1}
  .ff-footer--js .ff-footer__group--catalog{padding:16px 0 8px}
  .ff-footer--js .ff-footer__group--catalog .ff-footer__links ul{gap:6px}
  .ff-footer--js .ff-footer__group--catalog .ff-footer__links a{line-height:20px}
  .ff-footer--js.ff-footer--catalog-closed .ff-footer__group--catalog{display:none}
  .ff-footer--js .ff-footer__group:not(.ff-footer__group--catalog){grid-column:1 / -1}
  .ff-footer--js .ff-footer__group:not(.ff-footer__group--catalog) .ff-footer__heading{display:none}
  .ff-footer--js .ff-footer__group:not(.ff-footer__group--catalog) .ff-footer__links{display:none;padding:12px 0 16px}
  .ff-footer--js .ff-footer__group.is-open .ff-footer__links{display:block}
  .ff-footer--js .ff-footer__group:not(.ff-footer__group--catalog) .ff-footer__links a{font-size:15px;line-height:24px}
  .ff-footer__bottom-in{flex-direction:column;align-items:flex-start;gap:14px;padding-top:20px;padding-bottom:28px}
  .ff-footer__bottom-in .ff-footer__social{order:-1}
}
@media (prefers-reduced-motion:reduce){.ff-footer a,.ff-footer--js .ff-footer__toggle::after{transition:none}}
