/* GOOD CHIPS — footer
   Ported from the supplied static build. Colors and type sizes resolve from
   global theme settings via the --gc-* custom properties emitted by
   components/theme-css-var.html. */

.gc-footer { position:relative; background:var(--gc-cream); color:var(--gc-ink); }
.gc-footer { min-height:max(640px,37.5vw); overflow:hidden; isolation:isolate; background:radial-gradient(ellipse 42% 68% at 88% 22%,rgba(237,194,120,.23),transparent 72%),var(--gc-cream); }
.gc-footer-art-layer { position:absolute; z-index:1; inset:0; display:block; width:100%; height:100%; pointer-events:none; }
.gc-footer-art-home { position:absolute; z-index:3; left:4%; right:4%; bottom:0; display:block; height:38%; cursor:pointer; }
.gc-footer-art { width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.gc-footer-content { position:relative; z-index:2; width:min(84vw,1600px); margin:auto; padding:clamp(24px,2.3vw,44px) 0 0; pointer-events:none; }
.gc-footer-content a,
.gc-footer-content button { pointer-events:auto; }
.gc-footer-top { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,22%); border-top:1px solid rgba(255,255,255,.82); border-bottom:1px solid rgba(255,255,255,.82); }
.gc-footer-main { padding:clamp(18px,1.8vw,34px) clamp(24px,3vw,54px) 18px 0; }
.gc-footer-title { margin:0; white-space:nowrap; font:600 calc((clamp(46px,3.7vw,72px)) * var(--gc-type-scale, 1))/.92 var(--gc-product-serif); letter-spacing:-.045em; }
.gc-footer-title strong { color:#356f8b; font-family:var(--gc-display); font-weight:900; text-transform:uppercase; }
.gc-footer-copy { margin:14px 0 18px; font:500 calc((clamp(14px,1.05vw,18px)) * var(--gc-type-scale, 1))/1.45 var(--gc-sans); }
.gc-footer-button { display:inline-flex; align-items:center; justify-content:center; gap:13px; min-width:300px; min-height:52px; padding:13px 28px; border:1px solid var(--gc-ink); border-radius:999px; background:var(--gc-ink); color:#fff; cursor:pointer; text-decoration:none; font:700 calc((13px) * var(--gc-type-scale, 1))/1 var(--gc-product-serif); letter-spacing:.05em; text-transform:uppercase; transition:transform .22s ease,background .25s ease,color .25s ease,box-shadow .3s ease; }
.gc-footer-contact { padding:clamp(18px,1.8vw,34px) 0 18px clamp(28px,2.8vw,48px); border-left:1px solid rgba(255,255,255,.82); }
.gc-footer-contact p { margin:0 0 24px; font:500 calc((clamp(18px,1.5vw,24px)) * var(--gc-type-scale, 1))/1.35 var(--gc-sans); }
.gc-footer-contact .gc-footer-button { width:100%; min-width:0; background:transparent; color:var(--gc-ink); }
.gc-social-label { margin-top:28px!important; margin-bottom:14px!important; }
.gc-socials { display:flex; gap:18px; align-items:center; }
.gc-socials a { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; color:var(--gc-ink); transition:transform .2s ease,background .2s ease; }
.gc-socials a:hover { transform:translateY(-2px); background:rgba(255,255,255,.45); }
.gc-socials svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; }
.gc-socials .fill-icon { fill:currentColor; stroke:none; }
.gc-footer-utility { display:flex; justify-content:space-between; gap:30px; padding:16px 0; font:500 calc((13px) * var(--gc-type-scale, 1))/1.4 var(--gc-sans); }
.gc-footer-legal { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 22px; }
.gc-footer-legal a { display:inline-block; padding:10px 0; text-decoration:none; }
.gc-footer-home-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.gc-footer-button {
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.gc-footer-button::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:-45% auto -45% -42%;
  width:32%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);
  transform:translateX(-180%) skewX(-16deg);
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}
.gc-footer-main .gc-footer-button { gap:12px; }
.gc-footer-main .gc-footer-button::after {
  content:"→";
  display:inline-block;
  font-size:calc((1.18em) * var(--gc-type-scale, 1));
  line-height:.8;
  transition:transform .28s ease;
}
@media (hover:hover) and (pointer:fine) {
.gc-footer-button:hover::before { transform:translateX(590%) skewX(-16deg); }
.gc-footer-main .gc-footer-button:hover::after { transform:translateX(5px); }
.gc-footer-button:hover { transform:translateY(-2px); box-shadow:0 15px 34px rgba(58,43,24,.16),0 0 0 1px rgba(255,255,255,.32) inset; }
.gc-footer-main .gc-footer-button:hover { background:var(--gc-teal); border-color:var(--gc-teal); box-shadow:0 16px 38px rgba(var(--gc-teal-rgb),.24); }
.gc-footer-contact .gc-footer-button:hover { background:rgba(255,255,255,.38); color:var(--gc-teal); border-color:var(--gc-teal); box-shadow:0 14px 34px rgba(var(--gc-teal-rgb),.12); }
.gc-contact-close:hover { color:var(--gc-teal); background:rgba(var(--gc-teal-rgb),.09); }
}
.gc-contact-overlay { position:fixed; z-index:1400; inset:0; display:grid; place-items:center; padding:24px; opacity:0; visibility:hidden; background:rgba(64,54,42,.28); backdrop-filter:blur(8px); transition:opacity .3s ease,visibility .3s; }
.gc-contact-overlay.is-open { opacity:1; visibility:visible; }
.gc-contact-backdrop { position:absolute; inset:0; }
.gc-contact-dialog { position:relative; width:min(92vw,720px); max-height:90svh; overflow:auto; padding:clamp(42px,5vw,68px); border:1px solid rgba(255,255,255,.78); border-radius:22px; background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(var(--gc-cream-rgb),.68)); box-shadow:0 30px 90px rgba(57,42,24,.2),inset 0 1px rgba(255,255,255,.9); backdrop-filter:blur(20px) saturate(115%); transform:translateY(14px) scale(.985); transition:transform .3s ease; }
.gc-contact-overlay.is-open .gc-contact-dialog { transform:none; }
.gc-contact-close { position:absolute; top:16px; right:16px; width:44px; height:44px; border:1px solid rgba(var(--gc-ink-rgb),.2); border-radius:50%; background:rgba(255,255,255,.42); cursor:pointer; font-size:calc((25px) * var(--gc-type-scale, 1)); }
.gc-contact-eyebrow { margin-bottom:15px; }
.gc-contact-title { margin:0 0 28px; font:600 italic calc((clamp(48px,6vw,72px)) * var(--gc-type-scale, 1))/.95 var(--gc-product-serif); }
.gc-contact-form { display:grid; gap:18px; }
.gc-contact-field { display:grid; gap:8px; font:600 calc((11px) * var(--gc-type-scale, 1))/1 var(--gc-sans); letter-spacing:.13em; text-transform:uppercase; }
.gc-contact-field input,
.gc-contact-field textarea { width:100%; padding:15px 0; border:0; border-bottom:1px solid rgba(var(--gc-ink-rgb),.35); border-radius:0; outline:0; background:transparent; color:inherit; font:400 calc((20px) * var(--gc-type-scale, 1))/1.4 var(--gc-product-serif); text-transform:none; }
.gc-contact-field textarea { min-height:130px; resize:vertical; }
.gc-contact-field input:focus,
.gc-contact-field textarea:focus { border-color:var(--gc-teal); box-shadow:0 2px 0 var(--gc-teal); }
.gc-contact-submit { width:100%; margin-top:12px; }
.gc-contact-status { min-height:20px; margin:0; font:500 calc((14px) * var(--gc-type-scale, 1))/1.4 var(--gc-sans); }
@media (max-aspect-ratio:9/10) {
.gc-footer {
    min-height:0;
    padding-bottom:calc(91.04vw + 30px);
  }
.gc-footer-art-layer { top:auto; bottom:0; height:91.04vw; }
.gc-footer-art { object-position:center bottom; }
.gc-footer-art-home { left:3%; right:3%; top:auto; bottom:0; height:91.04vw; }
.gc-footer-content { width:calc(100% - 40px); padding-top:42px; }
.gc-footer-top { display:block; }
.gc-footer-main { padding:28px 0 20px; }
.gc-footer-title { white-space:normal; font-size:calc((clamp(43px,12vw,61px)) * var(--gc-type-scale, 1)); line-height:.96; }
.gc-footer-title strong { display:block; margin-top:5px; font-size:calc((.9em) * var(--gc-type-scale, 1)); }
.gc-footer-copy { margin:14px 0 20px; font-size:calc((13px) * var(--gc-type-scale, 1)); }
.gc-footer-button { min-width:200px; min-height:48px; padding:13px 22px; font-size:calc((12px) * var(--gc-type-scale, 1)); }
.gc-footer-contact { padding:22px 0 20px; border-left:0; border-top:1px solid rgba(255,255,255,.82); }
.gc-footer-contact p { margin-bottom:14px; font-size:calc((15px) * var(--gc-type-scale, 1)); }
.gc-footer-contact .gc-footer-button { width:min(200px,100%); }
.gc-social-label { margin-top:18px!important; margin-bottom:8px!important; }
.gc-socials { gap:10px; }
.gc-socials a { width:44px; height:44px; }
.gc-socials svg { width:21px; height:21px; }
.gc-footer-utility { display:block; padding:15px 0 22px; border-top:1px solid rgba(255,255,255,.82); font-size:calc((10px) * var(--gc-type-scale, 1)); }
.gc-footer-legal { justify-content:flex-start; margin-top:10px; gap:7px 15px; }
.gc-contact-overlay { padding:12px; align-items:center; }
.gc-contact-dialog { width:100%; max-height:calc(100svh - 24px); padding:54px 22px 28px; border-radius:20px; }
}
@media (max-aspect-ratio:9/10) {
.gc-footer { padding-bottom:calc(104vw + 22px) !important; min-height:0 !important; }
.gc-footer-art-layer { top:auto !important; bottom:0 !important; height:104vw !important; }
.gc-footer-art { object-fit:contain !important; object-position:center bottom !important; }
.gc-footer-art-home { top:auto !important; bottom:0 !important; height:104vw !important; }
}
@media (max-aspect-ratio:9/10) {
.gc-footer { padding-bottom:calc(200vw + 26px) !important; }
.gc-footer-art-layer { height:200vw !important; }
.gc-footer-art { object-fit:contain !important; object-position:center bottom !important; }
.gc-footer-art-home { height:200vw !important; }
}
@media (min-width: 900px) {
.gc-footer {
    min-height: max(780px, calc(37.5vw + clamp(128px, 8vw, 160px)));
    overflow: hidden !important;
  }
.gc-footer-art-layer {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }
.gc-footer-art-home {
    top: auto !important;
    bottom: 0 !important;
    height: calc(21.62vw + 12px) !important;
  }
.gc-footer-art {
    object-fit: contain !important;
    object-position: center bottom !important;
    transform: none !important;
  }
.gc-footer-content {
    z-index: 4 !important;
  }
}
@media (max-width: 899px) {
.gc-footer {
    padding-bottom: 100vw !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
.gc-footer-art-layer {
    top: auto !important;
    bottom: 0 !important;
    height: 100vw !important;
    overflow: hidden !important;
  }
.gc-footer-art-home {
    top: auto !important;
    bottom: 0 !important;
    height: 100vw !important;
  }
.gc-footer-art {
    position: absolute !important;
    left: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 200vw !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    transform: none !important;
    transform-origin: center bottom !important;
  }
.gc-footer-content {
    z-index: 4 !important;
  }
}

