@import url('https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
  :root{
    --gg-cream: #FBF3E6;
    --gg-cream-deep: #F3E3CC;
    --gg-peach: #EFCFA6;
    --gg-terracotta: #C1794F;
    --gg-terracotta-deep: #A75F38;
    --gg-teal: #2A5F62;
    --gg-teal-deep: #1E4547;
    --gg-sage: #869669;
    --gg-brown-ink: #4A3627;
    --gg-gold-line: #CE9A5C;
    --gg-paper: #FFFDF9;
  }

  @media (prefers-reduced-motion: reduce){
    .gg-landing *{ animation: none !important; transition: none !important; }
  }

  .gg-landing{
    font-family: 'Cardo', serif;
    color: var(--gg-brown-ink);
    background: var(--gg-cream);
  }
  .gg-landing *{ box-sizing: border-box; }
  .gg-landing a{ color: inherit; }
  .gg-landing img{ max-width: 100%; display: block; }

  .gg-eyebrow{
    font-family: 'Jost', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--gg-terracotta-deep);
    text-align: center;
    margin: 0 0 0.6rem;
  }
  .gg-title{
    font-family: 'Cardo', serif;
    font-weight: 600;
    font-style: italic;
    font-size: clamp(1.7rem, 3.4vw, 2.5rem);
    color: var(--gg-teal-deep);
    text-align: center;
    margin: 0 0 0.6rem;
  }
  .gg-sub{
    font-family: 'Cardo', serif;
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--gg-brown-ink);
    text-align: center;
    max-width: 560px;
    margin: 0 auto 2.4rem;
    opacity: 0.9;
  }
  .gg-divider{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0.6rem auto 2rem;
    width: 160px;
  }
  .gg-divider .gg-line{ flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--gg-gold-line), transparent); }
  .gg-divider svg{ width: 16px; height: 16px; flex-shrink: 0; }

  .gg-section{ padding: 4.2rem 1.5rem; }
  .gg-section-inner{ max-width: 1200px; margin: 0 auto; }
  .gg-band-deep{ background: var(--gg-cream-deep); }
  .gg-band-peach{ background: var(--gg-peach); }

  .gg-btn{
    display: inline-block;
    font-family: 'Jost', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    padding: 0.75rem 1.7rem;
    border-radius: 999px;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: background 0.25s ease, transform 0.15s ease, color .25s ease;
  }
  .gg-btn-solid{ background: var(--gg-teal); color: var(--gg-paper); }
  .gg-btn-solid:hover{ background: var(--gg-teal-deep); transform: translateY(-1px); }
  .gg-btn-ghost{ background: transparent; color: var(--gg-paper); border: 1.5px solid var(--gg-paper); }
  .gg-btn-ghost:hover{ background: var(--gg-paper); color: var(--gg-teal-deep); }
  .gg-btn:focus-visible{ outline: 2px solid var(--gg-terracotta); outline-offset: 2px; }

  .gg-icon-badge{
    width: 54px; height: 54px;
    border-radius: 50%;
    background: var(--gg-cream);
    border: 1px solid var(--gg-peach);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 0.9rem;
    flex-shrink: 0;
  }
  .gg-icon-badge svg{ width: 24px; height: 24px; stroke: var(--gg-terracotta-deep); }

  /* ---------- 1. small announcement banner ---------- */
  .gg-strip{
    background: var(--gg-teal-deep);
    color: var(--gg-cream);
    overflow: hidden;
    padding: 0.6rem 0;
  }
  .gg-strip-track{
    display: flex;
    width: max-content;
    gap: 3rem;
    animation: gg-scroll 26s linear infinite;
    font-family: 'Jost', sans-serif;
    font-size: 0.82rem;
    letter-spacing: 0.04em;
  }
  .gg-strip:hover .gg-strip-track{ animation-play-state: paused; }
  .gg-strip-track span{ white-space: nowrap; opacity: 0.95; }
  @keyframes gg-scroll{
    from{ transform: translateX(0); }
    to{ transform: translateX(-50%); }
  }

  /* ---------- 2. featured categories ---------- */
  .gg-cat-grid{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.1rem;
  }
  .gg-cat-card{
    position: relative;
    background: var(--gg-paper);
    border: 1px solid var(--gg-peach);

    padding: 1.6rem 1rem 1.3rem;
    text-align: center;
    text-decoration: none;
    color: var(--gg-brown-ink);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .gg-cat-card::before{
    content: "";
    position: absolute;
    top: 12px; left: 50%;
    width: 8px; height: 8px;
    background: var(--gg-cream);
    border: 1px solid var(--gg-gold-line);
    border-radius: 50%;
    transform: translateX(-50%);
  }
  .gg-cat-card:hover{ transform: translateY(-4px); box-shadow: 0 14px 26px -18px rgba(74,54,39,0.4); }
  .gg-cat-card .gg-icon-badge{ margin-top: 0.4rem; }
  .gg-cat-name{ font-family: 'Cardo', serif; font-weight: 600; font-size: 1.08rem; margin: 0; }

  /* ---------- product grids (trending + bestsellers) ---------- */
  .gg-product-grid{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
  }
  .gg-product-card{
    background: var(--gg-paper);
    border: 1px solid var(--gg-peach);
    overflow: hidden;
    text-align: left;
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .gg-product-card:hover{ transform: translateY(-4px); box-shadow: 0 16px 30px -18px rgba(74,54,39,0.4); }
  .gg-product-thumb{
    height: 150px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(150deg, var(--gg-peach), var(--gg-cream-deep));
  }
  .gg-product-thumb svg{ width: 46px; height: 46px; stroke: var(--gg-terracotta-deep); }
  .gg-product-body{ padding: 1rem 1.1rem 1.2rem; }
  .gg-product-name{ font-family: 'Cardo', serif; font-weight: 600; font-size: 1.08rem; margin: 0 0 0.25rem; }
  .gg-product-price{ font-family: 'Jost', sans-serif; font-size: 0.85rem; color: var(--gg-terracotta-deep); margin: 0 0 0.7rem; }
  .gg-product-link{
    font-family: 'Jost', sans-serif; font-size: 0.76rem; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--gg-teal); text-decoration: none; border-bottom: 1px solid var(--gg-teal);
  }
  .gg-ribbon{
    position: absolute; top: 12px; right: -30px;
    background: var(--gg-terracotta); color: var(--gg-paper);
    font-family: 'Jost', sans-serif; font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase;
    padding: 0.28rem 2.2rem;
    transform: rotate(38deg);
  }

  /* ---------- occasion cards ---------- */
  .gg-occ-grid{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
  }
  .gg-occ-card{
    background: var(--gg-paper);
    border: 1px solid var(--gg-peach);
    padding: 1.4rem 0.8rem;
    text-align: center;
  }
  .gg-occ-card .gg-icon-badge{ width: 44px; height: 44px; }
  .gg-occ-card .gg-icon-badge svg{ width: 20px; height: 20px; }
  .gg-occ-name{ font-family: 'Jost', sans-serif; font-size: 16px; letter-spacing: 0.02em; margin: 0; }

  /* ---------- festival specials ---------- */
  .gg-festival-hero{
    background: linear-gradient(135deg, var(--gg-terracotta) 0%, var(--gg-terracotta-deep) 100%);
    color: var(--gg-paper);
    padding: 2.6rem 2rem;
    text-align: center;
    margin-bottom: 2rem;
  }
  .gg-festival-hero .gg-eyebrow{ color: var(--gg-cream); }
  .gg-festival-hero h3{ font-family: 'Cardo', serif; font-style: italic; font-weight: 600; font-size: clamp(1.5rem,3vw,2.1rem); margin: 0 0 0.7rem; }
  .gg-festival-hero p{ font-family: 'Cardo', serif; max-width: 480px; margin: 0 auto 1.4rem; opacity: 0.95; }
  .gg-fest-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.1rem;
  }
  .gg-fest-card{
    background: var(--gg-paper);
    border: 1px solid var(--gg-peach);
    padding: 1.5rem 1.2rem;
    text-align: center;
  }
  .gg-fest-card .gg-icon-badge{ background: var(--gg-cream-deep); }
  .gg-fest-name{ font-family: 'Cardo', serif; font-weight: 600; font-size: 1.05rem; margin: 0 0 0.3rem; }
  .gg-fest-desc{ font-family: 'Cardo', serif; font-size: 0.9rem; opacity: 0.85; margin: 0; }

  /* ---------- personalised gifts ---------- */
  .gg-personal{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.6rem;
    align-items: center;
  }
  .gg-personal-copy .gg-eyebrow, .gg-personal-copy .gg-title, .gg-personal-copy p{ text-align: left; margin-left: 0; }
  .gg-personal-copy .gg-title{ text-align: left; }
  .gg-personal-copy p{ font-family: 'Cardo', serif; line-height: 1.75; max-width: 460px; }
  .gg-personal-opts{ display: grid; gap: 0.9rem; margin-top: 1.6rem; }
  .gg-personal-opt{
    display: flex; align-items: center; gap: 0.9rem;
    background: var(--gg-paper); border: 1px solid var(--gg-peach);
    padding: 0.9rem 1.1rem;
  }
  .gg-personal-opt .gg-icon-badge{ margin: 0; width: 42px; height: 42px; flex-shrink: 0; }
  .gg-personal-opt .gg-icon-badge svg{ width: 18px; height: 18px; }
  .gg-personal-opt-text b{ font-family: 'Cardo', serif; font-size: 1rem; display: block; }
  .gg-personal-opt-text span{ font-family: 'Jost', sans-serif; font-size: 0.78rem; opacity: 0.75; }

  /* ---------- corporate gifting ---------- */
  .gg-corp{
    background: var(--gg-teal-deep);
    color: var(--gg-cream);
    border-radius: 20px;
    padding: 3rem 2.2rem;
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 2rem;
    align-items: center;
  }
  .gg-corp .gg-eyebrow{ color: var(--gg-peach); text-align: left; }
  .gg-corp h3{ font-family: 'Cardo', serif; font-style: italic; font-weight: 600; font-size: clamp(1.6rem,3vw,2.2rem); margin: 0 0 0.8rem; }
  .gg-corp p{ font-family: 'Cardo', serif; line-height: 1.75; opacity: 0.92; max-width: 480px; margin: 0 0 1.6rem; }
  .gg-corp-actions{ display: flex; gap: 0.9rem; flex-wrap: wrap; }
  .gg-corp-stats{ display: grid; gap: 1.1rem; }
  .gg-corp-stat b{ font-family: 'Cardo', serif; font-size: 2rem; display: block; color: var(--gg-peach); }
  .gg-corp-stat span{ font-family: 'Jost', sans-serif; font-size: 0.78rem; letter-spacing: 0.04em; opacity: 0.85; }

  /* ---------- testimonials ---------- */
  .gg-testi-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4rem;
  }
  .gg-testi-card{
    background: var(--gg-paper);
    border: 1px solid var(--gg-peach);
    border-radius: 16px;
    padding: 1.8rem 1.6rem;
    text-align: left;
  }
  .gg-testi-stars{ color: var(--gg-terracotta); font-size: 0.9rem; margin-bottom: 0.7rem; letter-spacing: 0.15em; }
  .gg-testi-quote{ font-family: 'Cardo', serif; font-style: italic; line-height: 1.7; font-size: 1rem; margin: 0 0 1.1rem; }
  .gg-testi-name{ font-family: 'Jost', sans-serif; font-size: 0.82rem; font-weight: 500; margin: 0; }
  .gg-testi-loc{ font-family: 'Jost', sans-serif; font-size: 0.74rem; color: var(--gg-terracotta-deep); margin: 0; }

  /* ---------- newsletter ---------- */
  .gg-news{ text-align: center; }
  .gg-news-form{
    max-width: 440px; margin: 0 auto;
    display: flex; gap: 0;
    background: var(--gg-paper);
    border: 1.5px solid var(--gg-peach);
    border-radius: 999px;
    padding: 5px;
    box-shadow: 0 10px 28px -16px rgba(74,54,39,0.3);
  }
  .gg-news-form input[type="email"]{
    flex: 1; border: none; background: transparent; outline: none;
    padding: 0.7rem 1.1rem; font-family: 'Jost', sans-serif; font-size: 0.92rem; color: var(--gg-brown-ink);
  }
  .gg-news-form input::placeholder{ color: #a9957f; }
  .gg-news-form button{
    border: none; background: var(--gg-teal); color: var(--gg-paper);
    font-family: 'Jost', sans-serif; font-size: 0.84rem; letter-spacing: 0.06em;
    padding: 0.72rem 1.5rem; border-radius: 999px; cursor: pointer; white-space: nowrap;
    transition: background 0.25s ease, transform 0.15s ease;
  }
  .gg-news-form button:hover{ background: var(--gg-teal-deep); transform: translateY(-1px); }
  .gg-news-form input:focus-visible, .gg-news-form button:focus-visible{ outline: 2px solid var(--gg-terracotta); outline-offset: 2px; }
  .gg-news-fine{ font-family: 'Jost', sans-serif; font-size: 0.74rem; color: #8a7960; margin-top: 0.9rem; }

  /* ===========================================================
     Responsive
     =========================================================== */
  @media (max-width: 980px){
    .gg-cat-grid{ grid-template-columns: repeat(3, 1fr); }
    .gg-product-grid{ grid-template-columns: repeat(2, 1fr); }
    .gg-occ-grid{ grid-template-columns: repeat(3, 1fr); }
    .gg-fest-grid{ grid-template-columns: 1fr; }
    .gg-personal{ grid-template-columns: 1fr; }
    .gg-personal-copy .gg-title, .gg-personal-copy p, .gg-personal-copy .gg-eyebrow{ text-align: center; margin-left: auto; margin-right: auto; }
    .gg-corp{ grid-template-columns: 1fr; text-align: center; }
    .gg-corp .gg-eyebrow, .gg-corp p{ text-align: center; margin-left: auto; margin-right: auto; }
    .gg-corp-actions{ justify-content: center; }
    .gg-corp-stats{ grid-template-columns: repeat(3,1fr); text-align: center; }
    .gg-testi-grid{ grid-template-columns: 1fr; }
  }
  @media (max-width: 620px){
    .gg-section{ padding: 3rem 1.1rem; }
    .gg-cat-grid{ grid-template-columns: repeat(2, 1fr); }
    .gg-product-grid{ grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
    .gg-occ-grid{ grid-template-columns: repeat(2, 1fr); }
    .gg-corp-stats{ grid-template-columns: 1fr; }
  }

  .new-grid{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;

  }