/* One Joud footer across the café and coffee shop. */
.joud-footer{--jf-rule:rgba(255,249,223,.24);--jf-muted:rgba(255,249,223,.82);background:var(--cherry);color:var(--cream);font-family:var(--font-ui);margin-top:48px}
.joud-footer [hidden]{display:none!important}
.jf-inner{width:100%;padding-inline:var(--page-gutter)}
.jf-main{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(300px,1fr);grid-template-rows:auto 1fr;gap:22px clamp(32px,5vw,96px);align-items:start;padding-block:44px 14px}
.jf-nav{grid-column:1;grid-row:1/3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.3vw,50px)}
.jf-group{min-width:0}
.jf-group summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;font-family:var(--font-ui);font-size:var(--type-small);font-weight:600;line-height:1.4;padding:5px 0 17px;cursor:default;color:var(--cream);text-transform:none;letter-spacing:0}
.jf-group summary::-webkit-details-marker{display:none}
.jf-group summary::marker{content:''}
.jf-toggle{display:none}
.jf-group ul{list-style:none;padding:0;margin:0}
.jf-link{display:flex;align-items:center;gap:7px;min-height:40px;width:fit-content;max-width:100%;padding:7px 0;font-family:var(--font-ui);font-size:var(--type-small);font-weight:400;line-height:1.5;color:var(--jf-muted);text-align:start;text-transform:none;letter-spacing:0;background:none;border:0;cursor:pointer;text-decoration:none}
.jf-link .jf-icon{width:14px;height:14px;flex-basis:14px}
.jf-link:hover,.jf-social:hover,.jf-legal button:hover{color:var(--cream);text-decoration:underline;text-underline-offset:5px}
.jf-signup{grid-column:2;grid-row:1;min-width:0}
:is(#siteCoffee,#siteCafe) .joud-footer .jf-signup h2{font-family:var(--font-display);font-size:clamp(1.5rem,1.2rem + .65vw,2rem);font-weight:400;line-height:1.2;letter-spacing:0;text-transform:uppercase;color:var(--cream);margin:0 0 18px;text-wrap:balance}
.jf-newsletter{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--jf-rule);border-radius:3px;overflow:hidden;background:var(--cream);margin:0}
.jf-newsletter label{display:block;min-width:0}
:is(#siteCoffee,#siteCafe) .jf-newsletter input{display:block;width:100%;min-width:0;height:50px;border:0;border-radius:0;background:transparent;color:var(--ink);font-family:var(--font-ui);font-size:var(--type-body);padding:12px 15px;line-height:1.5}
.jf-newsletter input::placeholder{color:#6b6252;opacity:1;font-size:var(--type-small)}
.jf-newsletter button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-inline-start:1px solid #d8cfb2;background:var(--cream);color:var(--cherry);padding:12px 16px;font-family:var(--font-ui);font-size:var(--type-small);font-weight:600;line-height:1.4;text-transform:none;letter-spacing:0;cursor:pointer}
.jf-newsletter button:hover{background:var(--paper)}
.jf-newsletter .jf-icon{width:17px;height:17px;flex-basis:17px}
.jf-newsletter-status{grid-column:1/-1;border-top:1px solid #d8cfb2;padding:11px 14px;color:var(--cherry);font-size:var(--type-caption);line-height:1.6;margin:0}
.jf-preview-note{font-family:var(--font-ui);font-size:var(--type-caption);font-weight:400;line-height:1.5;color:var(--jf-muted);margin:9px 0 0}
.jf-socials{grid-column:2;grid-row:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px}
.jf-social{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:var(--type-small);font-family:var(--font-ui);font-weight:400;line-height:1.5;color:var(--cream);text-decoration:none}
.jf-social-icon{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:0;border-radius:0;background:transparent}
.jf-social .jf-icon{width:24px;height:24px;flex-basis:24px}
.jf-social:hover .jf-social-icon{background:transparent;color:inherit}
.jf-icon{width:20px;height:20px;flex:0 0 20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.joud-footer :is(a,button,summary):focus-visible{outline:2px solid var(--cream);outline-offset:4px;border-radius:2px}
.jf-newsletter :is(input,button):focus-visible{outline:2px solid var(--cherry);outline-offset:-4px}
.jf-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-block:8px max(24px,env(safe-area-inset-bottom))}
.jf-bottom-left{display:flex;align-items:center;flex-wrap:wrap;gap:8px 28px;color:var(--jf-muted);font-size:var(--type-caption);line-height:1.5;padding-bottom:4px}
.jf-legal{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px}
.jf-legal button{border:0;background:transparent;color:inherit;font-family:var(--font-ui);font-size:var(--type-caption);font-weight:400;line-height:1.5;min-height:36px;padding:6px 0;letter-spacing:0;text-transform:none;cursor:pointer}
.jf-logo{display:block;width:176px;height:auto;flex:0 0 176px;margin:0}
.jf-sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.jf-overline{display:block;font-family:var(--font-ui);font-size:var(--type-caption);font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
/* Shared contact and information previews. No enquiry is transmitted. */
.jf-dialog { position:fixed; inset:0; margin:auto; width:min(600px,calc(100vw - 32px)); max-height:calc(100svh - 32px); overflow:auto; padding:clamp(24px,4vw,40px); border:1px solid var(--line-strong); border-radius:10px; background:var(--cream); color:var(--ink); box-shadow:0 24px 80px #04050344; }
.jf-dialog::backdrop { background:#04050388; }
.jf-dialog[open] { animation:jf-enter .16s ease-out; }
.jf-dialog h2 { font-family:var(--font-ui); font-size:var(--type-group); font-weight:600; line-height:1.3; letter-spacing:-.015em; text-transform:none; padding-inline-end:30px; margin:0 0 12px; }
.jf-dialog p { font-size:var(--type-small); line-height:1.65; color:var(--sub); }
.jf-dialog .jf-overline { color:var(--cherry); margin-bottom:12px; }
.jf-close { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--paper); }
.jf-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px; }
.jf-field { display:block; font-size:var(--type-small); font-weight:500; }
.jf-field-wide { grid-column:1/-1; }
.jf-field :is(input,select,textarea) { display:block; width:100%; max-width:100%; min-width:0; min-height:46px; margin-top:7px; padding:11px 12px; border:1px solid var(--line-strong); border-radius:4px; color:var(--ink); background:var(--card); font-family:var(--font-ui); font-size:var(--type-body); font-weight:400; line-height:1.4; }
.jf-field textarea { resize:vertical; min-height:100px; }
.jf-group-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; grid-column:1/-1; }
.jf-group-fields[hidden],.jf-dialog [hidden] { display:none; }
.jf-dialog-action { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:46px; margin-top:24px; padding:12px 20px; background:var(--cherry); color:var(--cream); font-family:var(--font-ui); font-size:var(--type-small); font-weight:600; border:1px solid var(--cherry); }
.jf-dialog .jf-demo-note { font-size:var(--type-caption); margin-top:12px; color:var(--faint); }
.jf-dialog .jf-form-status { font-size:var(--type-small); margin-top:16px; padding:12px; background:var(--paper); color:var(--cherry); border-left:3px solid var(--cherry); }
@keyframes jf-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

.jf-contact-options{margin:17px 0 0}
.jf-contact-options button,.jf-info-content :is(a,button){color:var(--cherry);font-family:var(--font-ui);font-size:var(--type-small);font-weight:500;line-height:1.6;text-decoration:underline;text-underline-offset:4px;background:none;border:0;cursor:pointer;min-height:40px;padding:7px 0}
.jf-info-content{margin-top:20px}
.jf-faq{border-bottom:1px solid var(--line-strong);font-size:var(--type-small)}
.jf-faq summary{padding:16px 0;font-size:var(--type-body);font-family:var(--font-ui);font-weight:500;line-height:1.5;cursor:pointer}
.jf-faq>div{padding:0 0 18px}
.jf-faq p{margin:0 0 6px}
.jf-faq-links{display:flex;flex-wrap:wrap;gap:8px 22px}
@media(max-width:1199px){
 .jf-main{grid-template-columns:minmax(0,1.9fr) minmax(260px,1fr);column-gap:32px}
 .jf-nav{gap:18px}
 .jf-newsletter button{padding-inline:12px;gap:8px}
 .jf-socials{gap:5px 15px}
}
@media(min-width:700px) and (max-width:999px){
 .jf-main{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto;gap:28px;padding-top:36px}
 .jf-nav{grid-column:1/-1;grid-row:1;gap:25px}
 .jf-signup{grid-column:1;grid-row:2}
 .jf-socials{grid-column:2;grid-row:2;align-self:center;justify-self:end}
 .jf-bottom{padding-top:18px}
}
@media(max-width:999px){
 #siteCafe.on-catering .joud-footer{padding-bottom:110px}
 #siteCoffee:has(.sticky-atc.show) .joud-footer{padding-bottom:88px}
}
@media(max-width:699px){
 .joud-footer{margin-top:32px}
 .jf-main{display:flex;flex-direction:column;gap:0;padding-block:32px 0}
 .jf-signup{width:100%}
 :is(#siteCoffee,#siteCafe) .joud-footer .jf-signup h2{font-size:1.75rem;margin-bottom:16px}
 .jf-newsletter input{height:52px}
 .jf-newsletter button{padding-inline:16px}
 .jf-nav{display:block;width:100%;margin-top:26px;border-top:1px solid var(--jf-rule)}
 .jf-group{border-bottom:1px solid var(--jf-rule)}
 .jf-group summary{cursor:pointer;min-height:60px;padding:18px 0;font-size:var(--type-body)}
 .jf-toggle{display:block;width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;transition:transform .15s}
 .jf-group[open] .jf-toggle{transform:rotate(180deg)}
 .jf-group ul{padding:0 0 14px}
 .jf-link{min-height:44px;font-size:var(--type-body)}
 .jf-socials{width:100%;margin-top:23px;gap:8px 22px}
 .jf-social{font-size:var(--type-small)}
 .jf-bottom{align-items:stretch;flex-direction:column;gap:24px;padding-top:20px}
 .jf-bottom-left{align-items:flex-start;flex-direction:column;gap:0;padding:0}
 .jf-legal{gap:8px 20px}
 .jf-logo{width:120px;flex-basis:auto;align-self:flex-end}
 .jf-fields{grid-template-columns:1fr}
 .jf-group-fields{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.jf-dialog[open]{animation:none}.joud-footer *{transition:none!important}}

/* Both mobile footers end with useful links, not a detached logo row.
   The navigation wordmark remains the identity anchor; desktop is unchanged. */
@media(max-width:699px){
 :is(#coffee-footer,#cafe-footer) .jf-logo{display:none}
 :is(#coffee-footer,#cafe-footer) .jf-bottom{gap:0;padding-block:20px max(24px,env(safe-area-inset-bottom));border-top:1px solid var(--jf-rule);margin-top:18px}
 :is(#coffee-footer,#cafe-footer) .jf-bottom-left{width:100%;gap:4px}
}
/* A font-independent arrow keeps the shared contact preview legible. */
.jf-contact-options button>span[aria-hidden="true"]{display:inline-block;vertical-align:middle;width:18px;height:18px;margin-inline-start:5px;font-size:0;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}

/* Keep the shared dialog icon independent of the Café-only SVG styles. */
.jf-contact-options button{display:inline-flex;align-items:center;gap:8px}
.jf-contact-options .jf-icon{width:18px;height:18px;flex-basis:18px}

.jf-family{display:flex;align-items:center;gap:clamp(20px,4vw,64px);border-bottom:1px solid rgba(255,249,223,.24);padding:24px 0;color:var(--cream);flex-wrap:wrap}.jf-family>span{font-size:.65rem;letter-spacing:.12em;margin-right:auto}.jf-family a{font-size:.85rem;font-weight:600;min-height:44px;display:flex;align-items:center}.jf-family a:hover{text-decoration:underline;text-underline-offset:5px}@media(max-width:699px){.jf-family{gap:8px 20px;padding:20px 0}.jf-family>span{width:100%}.jf-family a{font-size:.75rem}}

/* QA014: associated validation guidance, visible only after an invalid preview attempt. */
.jf-field-error { display:block; margin-top:6px; color:var(--cherry); font-size:var(--type-caption); line-height:1.5; }
