/* Gift card banner — the "ticket stub" strip above the nav.
 *
 * Shared by every page that shows it (index, midweek, winter-getaway, cabins/*).
 * Lives at the site root, NOT /assets/, for the same reason analytics.js does:
 * /assets/* is cached immutable for a year, so a copy or season change here
 * would never reach returning visitors. The root inherits must-revalidate.
 *
 * The ticket echoes the printable gift card: marigold face, paper stub,
 * dashed perforation with notches. It is deliberately NOT on gift-card.html
 * (it would link to itself) or the purchase-* pages (guests mid-checkout).
 *
 * To take it down: delete the `<!-- gift card banner -->` block and this
 * file's <link> from each page. The × hides it for the rest of the visit
 * (sessionStorage key `gcb-hidden`).
 */
.gcb{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;
  padding:9px 56px;background:var(--sky);border-bottom:1px solid var(--line);
  font-family:var(--f-body);}
.gcb[hidden]{display:none;}

.gcb-tix{display:flex;height:42px;text-decoration:none;color:#3a2c14;
  transform:rotate(-1.5deg);transition:transform .2s ease;}
.gcb-tix:hover,.gcb-tix:focus-visible{transform:rotate(0) translateY(-1px);}
.gcb-tix:focus-visible{outline:2px solid var(--blush-d);outline-offset:3px;border-radius:9px;}
.gcb-face{display:flex;align-items:center;gap:9px;padding:0 16px;background:var(--marigold);
  border-radius:9px 0 0 9px;font-family:var(--f-disp);font-weight:700;font-size:17px;white-space:nowrap;}
.gcb-face svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;flex:none;}
.gcb-stub{position:relative;display:flex;flex-direction:column;justify-content:center;padding:0 14px;
  background:var(--paper);border-left:2px dashed var(--marigold-d);border-radius:0 9px 9px 0;
  font-size:10.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;line-height:1.3;
  color:var(--blush-d);white-space:nowrap;}
/* the perforation notches — circles in the strip's own color */
.gcb-stub::before,.gcb-stub::after{content:"";position:absolute;left:-8px;width:14px;height:14px;
  border-radius:50%;background:var(--sky);}
.gcb-stub::before{top:-7px;}
.gcb-stub::after{bottom:-7px;}

.gcb-side{font-size:15px;line-height:1.4;color:var(--ink2);}
.gcb-side a{color:var(--blush-d);font-weight:800;text-decoration:none;white-space:nowrap;}
.gcb-side a:hover{text-decoration:underline;}

.gcb-x{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;
  display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;
  color:var(--ink2);opacity:.7;cursor:pointer;}
.gcb-x:hover{opacity:1;background:var(--sky2);}
.gcb-x:focus-visible{opacity:1;outline:2px solid var(--blush-d);outline-offset:1px;}
.gcb-x svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;fill:none;}

@media(max-width:760px){
  .gcb{padding:9px 44px 9px 12px;}
  .gcb-side{display:none;}
  .gcb-tix{height:38px;}
  .gcb-face{font-size:15px;padding:0 12px;}
  .gcb-stub{font-size:9.5px;padding:0 10px;}
  .gcb-x{right:6px;}
}
@media(prefers-reduced-motion:reduce){ .gcb-tix{transition:none;} }
