.ttf-footer, .ttf-footer * { box-sizing: border-box; }
.ttf-footer { position: relative; z-index: 20; width: 100vw; max-width: none!important; margin-left: calc(50% - 50vw)!important; margin-right: calc(50% - 50vw)!important; background: var(--ttf-bg); color: var(--ttf-text); font-family: var(--ttf-font); font-size: var(--ttf-base); line-height: 1.38; min-height: var(--ttf-min-h); overflow: hidden; clear: both; }
.ttf-wave { position:absolute; left:0; top:0; width:100%; height:var(--ttf-wave-height); display:block; pointer-events:none; z-index:1; }
.ttf-inner { width: min(100%, var(--ttf-max-w)); min-height: var(--ttf-min-h); margin: 0 auto; padding: 23px clamp(20px, 3.65vw, 70px) 14px; display:grid; grid-template-columns: 2.1fr 1.12fr 1.12fr 1.12fr 1.65fr; align-items:start; column-gap: 52px; }
.ttf-brand { padding-top: 0; min-width:0; }
.ttf-logo { display:block; width: min(var(--ttf-logo-w),100%); height:auto; object-fit:contain; object-position:left center; margin: -9px 0 -3px 0; }
.ttf-tagline { font-weight:500; margin: 0 0 12px 7px; font-size: calc(var(--ttf-base) + 2px); color: var(--ttf-text); white-space:nowrap; }
.ttf-heart { color: var(--ttf-accent); font-size:18px; display:inline-block; transform:rotate(-13deg); margin-left:8px; }
.ttf-copyright { margin-left:0; font-size: calc(var(--ttf-base) - 1px); color:#7d6072; }
.ttf-copyright a { color:inherit!important; text-decoration:none!important; }
.ttf-heading { margin: 0 0 2px; color:var(--ttf-heading); font-size:var(--ttf-heading-size); font-weight:700; line-height:1.25; }
.ttf-menu { list-style:none!important; padding:0!important; margin:0!important; }
.ttf-menu li { margin:0!important; padding:0!important; border:0!important; list-style:none!important; }
.ttf-menu a { display:inline-block; color:var(--ttf-text)!important; text-decoration:none!important; font:inherit!important; font-weight:400!important; line-height:1.42!important; padding:0!important; margin:0!important; background:none!important; border:0!important; box-shadow:none!important; }
.ttf-menu a:hover { color:var(--ttf-heading)!important; }
.ttf-placeholder a { opacity:.6; font-style:italic; }
.ttf-social-payment { display:flex; min-height:132px; flex-direction:column; align-items:flex-start; }
.ttf-socials { display:flex; align-items:center; gap:17px; min-height:28px; margin: 3px 0 45px; }
.ttf-social { width:var(--ttf-social-size); height:var(--ttf-social-size); display:inline-flex; align-items:center; justify-content:center; color:#b30a69!important; text-decoration:none!important; }
.ttf-social svg { width:100%; height:100%; overflow:visible; fill:currentColor; stroke:currentColor; stroke-width:1.7; }
.ttf-social svg path { stroke:none; }
.ttf-social.ttf-instagram svg rect,.ttf-social.ttf-instagram svg circle:not(.fill) { fill:none; }
.ttf-social.ttf-instagram svg .fill { stroke:none; }
.ttf-payments { margin-top:auto; display:flex; align-items:center; gap:10px; min-height:34px; }
.ttf-payments img { display:block; height:var(--ttf-payment-h); width:auto; max-width:none; object-fit:contain; border-radius:4px; }
.ttf-accordion { display:none; }

@media (max-width: 1000px) and (min-width: 768px) {
  .ttf-inner { padding-left:30px; padding-right:30px; column-gap:28px; grid-template-columns: 1.75fr 1fr 1fr 1fr 1.45fr; }
  .ttf-socials { gap:12px; }
  .ttf-payments { gap:6px; flex-wrap:wrap; }
}

@media (max-width: 767px) {
  .ttf-footer { width:100%!important; margin-left:0!important; margin-right:0!important; min-height:0; }
  .ttf-wave { height:var(--ttf-wave-height); }
  .ttf-inner { min-height:0; width:100%; padding:27px 20px 22px; display:block; }
  .ttf-brand { text-align:center; padding:0 0 18px; }
  .ttf-logo { margin:-9px auto -2px; width:min(var(--ttf-logo-w), 250px); }
  .ttf-tagline { white-space:normal; margin:0 0 9px; }
  .ttf-copyright { font-size:11px; }
  .ttf-nav-section { border-top:1px solid rgba(123,12,85,.16); }
  .ttf-nav-section:nth-of-type(4) { border-bottom:1px solid rgba(123,12,85,.16); }
  .ttf-heading { display:none; }
  .ttf-accordion { width:100%; appearance:none; border:0!important; background:transparent!important; color:var(--ttf-heading)!important; padding:13px 0!important; margin:0!important; display:flex; align-items:center; justify-content:space-between; font-family:var(--ttf-font)!important; font-size:var(--ttf-heading-size)!important; font-weight:700!important; box-shadow:none!important; text-align:left; }
  .ttf-chevron { width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .22s ease; margin-right:3px; }
  .ttf-accordion[aria-expanded="true"] .ttf-chevron { transform:rotate(225deg); }
  .ttf-panel { max-height:0; overflow:hidden; opacity:0; transition:max-height .3s ease,opacity .25s ease,padding .25s ease; padding:0; }
  .ttf-panel.ttf-open { max-height:500px; opacity:1; padding:0 0 13px; }
  .ttf-menu a { display:block; padding:4px 0!important; }
  .ttf-social-payment { min-height:0; align-items:center; text-align:center; padding-top:20px; }
  .ttf-social-payment > .ttf-heading { display:block; }
  .ttf-socials { margin:8px 0 18px; gap:20px; }
  .ttf-payments { margin:0; justify-content:center; flex-wrap:wrap; gap:8px; }
  .ttf-payments img { height:min(var(--ttf-payment-h),30px); }
}

/* Decorative organic edge and fluid site-wide placement */
.ttf-footer { isolation:isolate; }
.ttf-inner { position:relative; z-index:2; }
@media (max-width:767px) { .ttf-footer { width:100vw!important; max-width:100vw!important; margin-left:calc(50% - 50vw)!important; margin-right:calc(50% - 50vw)!important; } }

/* v1.2: Match brand logo left edge with header search at ~70px desktop.
   Keep full-width footer while allowing configurable max-width if desired. */
@media (min-width: 1001px) {
  .ttf-inner { padding-left: clamp(20px, 3.65vw, 70px); padding-right: clamp(20px, 3.65vw, 70px); }
}

/* v1.3: footer branding anchored at the same ~3.65vw inset as header search. */
@media (min-width: 1001px) {
 .ttf-footer .ttf-inner { max-width:100%!important; width:100%!important; padding-left:clamp(20px,3.65vw,70px)!important; padding-right:clamp(20px,3.65vw,70px)!important; }
 .ttf-footer .ttf-brand { justify-self:start; }
}

.ttf-payments a{display:inline-flex;align-items:center;text-decoration:none}.ttf-payments a img{display:block}
