/* ============================================================================
   Gallery 1776 — "refined heritage gallery" skin, layered over Oscar.
   Palette: cream / ink-navy / gold, with a small heritage red accent.
   Type: Cormorant Garamond (display) + Jost (labels/nav).
   ========================================================================== */
:root{
  --cream:#FAF3E9; --cream-deep:#F3E8D5;
  --ink:#1C2C3C; --ink-soft:#6E7079;
  --gold:#A8843C; --gold-light:#C8AC6B; --gold-hair:#DCCBA2; --red:#7C1F2B;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost",-apple-system,"Segoe UI",sans-serif;
}

/* ---- Base ---------------------------------------------------------------- */
body,body.default{
  background:var(--cream)!important;
  color:var(--ink);
  font-family:var(--serif);
  font-size:1.05rem;
}
h1,h2,h3,h4,h5,.h1,.h2,.h3{font-family:var(--serif);font-weight:500;color:var(--ink);}
a{color:var(--gold);}
a:hover{color:var(--ink);}
.smallcaps{font-family:var(--sans);text-transform:uppercase;letter-spacing:.26em;font-weight:400;}

/* ---- Announcement bar ---------------------------------------------------- */
.g-announce{
  background:var(--ink);color:var(--gold-light);text-align:center;
  font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  padding:15px 24px;font-weight:300;border-top:3px solid var(--red);
}
.g-announce .sep{color:var(--red);}

/* ---- Header / nav -------------------------------------------------------- */
.g-header{background:var(--cream);text-align:center;padding:14px 24px;}
.g-logo{display:block;}
.g-logo img{width:520px;max-width:92vw;height:auto;display:block;margin:0 auto;}
.g-navbar{background:var(--ink);display:flex;justify-content:center;flex-wrap:wrap;gap:38px;
  padding:15px 24px;font-family:var(--sans);text-transform:uppercase;letter-spacing:.2em;font-size:12px;
  border-bottom:3px solid var(--red);}
.g-navbar a{color:var(--gold-light);text-decoration:none;transition:color .2s;}
.g-navbar a:hover{color:#fff;}

/* ---- Footer -------------------------------------------------------------- */
.g-footer{background:var(--ink);color:var(--gold-hair);text-align:center;padding:46px 24px;border-top:3px solid var(--red);}
.g-footer .fmark{font-family:var(--serif);font-size:24px;letter-spacing:.22em;color:var(--cream);}
.g-footer .fline{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:12px;}
.g-footer .flinks{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-top:18px;}
.g-footer .flinks a{color:var(--gold-light);text-decoration:none;margin:0 6px;}
.g-footer .flinks a:hover{color:var(--cream);}

/* ---- Homepage: hero ------------------------------------------------------ */
.g-hero{position:relative;min-height:540px;display:flex;align-items:center;overflow:hidden;background:#100c07;}
.g-hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92;}
.g-hero .veil{position:absolute;inset:0;background:linear-gradient(to right,rgba(16,12,7,.78),rgba(16,12,7,.2) 60%,rgba(16,12,7,.5));}
.g-hero .copy{position:relative;max-width:1180px;margin:0 auto;padding:0 9%;width:100%;}
.g-hero .eyebrow{color:var(--gold-light);font-size:11px;margin-bottom:18px;}
.g-hero h1{color:var(--cream);font-size:52px;line-height:1.12;margin:0;}
.g-hero h1 em{font-style:italic;color:var(--gold-light);}
.g-hero p{color:#e6dcc9;font-size:19px;line-height:1.7;margin:20px 0 26px;max-width:480px;}

/* ---- Buttons (shared, override Oscar) ------------------------------------ */
.g-btn,.btn-primary,.btn.btn-primary{
  display:inline-block;font-family:var(--sans);text-transform:uppercase;letter-spacing:.2em;
  font-size:12px;padding:14px 32px;border:1px solid var(--gold);background:var(--gold);color:var(--cream)!important;
  text-decoration:none;transition:all .25s;border-radius:0;font-weight:400;cursor:pointer;
}
.g-btn:hover,.btn-primary:hover,.btn-primary:focus{background:var(--ink);border-color:var(--ink);color:var(--cream)!important;}
.g-btn--ghost{background:transparent;color:var(--cream)!important;border-color:var(--gold-light);}
.g-btn--ghost:hover{background:var(--gold);border-color:var(--gold);}
.btn-secondary{background:transparent;border-color:var(--gold);color:var(--gold);border-radius:0;}

/* ---- Homepage: mission --------------------------------------------------- */
.g-mission{text-align:center;padding:66px 24px 58px;max-width:760px;margin:0 auto;}
.g-mission .eyebrow{color:var(--gold);font-size:11px;margin-bottom:20px;}
.g-mission h2{font-size:34px;line-height:1.25;margin-bottom:20px;}
.g-mission p{font-size:19px;line-height:1.75;color:#3a4656;}
.g-rule{display:flex;align-items:center;justify-content:center;gap:16px;margin:30px auto 0;max-width:200px;}
.g-rule .line{height:1px;background:var(--gold);flex:1;opacity:.6;}
.g-rule .diamond{width:8px;height:8px;background:var(--red);transform:rotate(45deg);}

/* ---- Homepage: collections grid ------------------------------------------ */
.g-cats{background:var(--cream-deep);padding:64px 24px 84px;border-top:1px solid var(--gold-hair);}
.g-section-head{text-align:center;margin-bottom:44px;}
.g-section-head .smallcaps{color:var(--gold);font-size:12px;}
.g-section-head h2{font-size:34px;margin-top:8px;}
.g-cat-grid{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.g-cat{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--gold-hair);background:#100c07;display:block;text-decoration:none;}
.g-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.g-cat:hover img{transform:scale(1.06);}
.g-cat .veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(16,12,7,.82),rgba(16,12,7,.08) 55%,rgba(16,12,7,.32));}
.g-cat .frameline{position:absolute;inset:10px;border:1px solid rgba(200,172,107,.4);z-index:2;pointer-events:none;}
.g-cat .label{position:absolute;left:0;right:0;bottom:0;text-align:center;padding:18px;z-index:3;}
.g-cat .label .name{color:var(--cream);font-family:var(--serif);font-size:25px;font-weight:500;}
.g-cat .label .count{font-family:var(--sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);margin-top:5px;}
.g-cat.soon{background:linear-gradient(160deg,#26303c,#161d26);pointer-events:none;}
.g-cat.soon .label .name{color:var(--gold-hair);}
.g-cat.soon .label .count{color:var(--ink-soft);}
.g-cat.soon .badge{position:absolute;top:16px;left:50%;transform:translateX(-50%);font-family:var(--sans);font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink);background:var(--gold-light);padding:5px 12px;z-index:3;}

/* ---- Content pages (Our Story / The Artist / Contact) -------------------- */
.g-page{max-width:860px;margin:0 auto;padding:60px 24px 72px;}
.g-page h1{font-size:42px;text-align:center;margin-bottom:8px;}
.g-page .eyebrow{display:block;text-align:center;color:var(--gold);font-size:11px;margin-bottom:26px;}
.g-page p{font-size:19px;line-height:1.8;color:#3a4656;margin-bottom:18px;}
.g-poem{font-family:var(--serif);font-size:22px;line-height:1.7;text-align:center;color:var(--ink);white-space:pre-line;margin:10px auto 8px;}
.g-poem-attrib{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-align:center;}
.g-artist-portrait{float:right;width:300px;max-width:42%;margin:0 0 18px 28px;border:1px solid var(--gold-hair);}

/* Contact form */
.g-form{max-width:560px;margin:34px auto 0;text-align:left;}
.g-field{margin-bottom:18px;}
.g-field label{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;}
.g-form input,.g-form textarea{width:100%;padding:12px 14px;border:1px solid var(--gold-hair);background:#fff;font-family:var(--serif);font-size:17px;color:var(--ink);border-radius:0;}
.g-form input:focus,.g-form textarea:focus{outline:none;border-color:var(--gold);}
.g-form .g-btn{margin-top:6px;cursor:pointer;}
.g-field-error{color:var(--red);font-family:var(--sans);font-size:12px;margin-top:5px;}
.g-contact-success{max-width:560px;margin:24px auto 0;background:#eef3ec;border:1px solid #b9cdb0;color:#2f5d36;padding:14px 18px;font-family:var(--sans);font-size:14px;text-align:center;}

/* ---- Inner pages: gentle Oscar overrides --------------------------------- */
.page-header,.page-header h1,.page-header h2{font-family:var(--serif);border-color:var(--gold-hair);}
.product_pod,.card{background:#fff;border:1px solid var(--gold-hair);border-radius:0;}
.product_pod h3 a,.product_pod .h3 a{font-family:var(--serif);color:var(--ink);font-size:1.25rem;}
.price_color,.price-color{color:var(--gold)!important;font-weight:600;}

/* Breadcrumbs — drop Bootstrap's grey pill for a quiet ruled strip. */
.breadcrumb{background:transparent;border-radius:0;border-bottom:1px solid var(--gold-hair);
  padding:12px 2px;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
.breadcrumb a{color:var(--gold);}
.breadcrumb .active,.breadcrumb-item.active{color:var(--ink-soft);}

/* Map the remaining Bootstrap button colours onto the palette. */
.btn-success,.btn-info,.btn-secondary{background:var(--gold);border-color:var(--gold);color:var(--cream)!important;border-radius:0;letter-spacing:.12em;}
.btn-success:hover,.btn-info:hover,.btn-secondary:hover{background:var(--ink);border-color:var(--ink);color:var(--cream)!important;}
.btn{border-radius:0;}
.btn-outline-primary,.btn-outline-secondary{border-radius:0;color:var(--gold);border-color:var(--gold);}

/* Unique originals — no review stars to clutter the cards. */
.product_pod .star-rating,.product_pod .review-count{display:none;}

/* Forms on inner pages (login, address, etc.). */
.form-control{border-radius:0;border-color:var(--gold-hair);}
.form-control:focus{border-color:var(--gold);box-shadow:none;}

/* Basket / checkout headings. */
.basket-title,.sub-header h2,#content_inner h2{font-family:var(--serif);}

@media (max-width:900px){
  .g-cat-grid{grid-template-columns:repeat(2,1fr);}
  .g-hero h1{font-size:38px;}
  .g-artist-portrait{float:none;display:block;margin:0 auto 24px;width:260px;max-width:80%;}
}
@media (max-width:560px){
  .g-cat-grid{grid-template-columns:1fr;}
  .g-nav{gap:18px;}
}

/* ---- Full-width inner pages ---------------------------------------------- */
/* Let catalogue/product/basket/checkout span the whole screen (the homepage
   and content pages manage their own width). */
.container{max-width:100%;padding-left:clamp(16px,4vw,64px);padding-right:clamp(16px,4vw,64px);}
.product_pod .image_container img,.product_pod img{width:100%;height:auto;}

/* ---- Product gallery + full-resolution lightbox -------------------------- */
.g-gallery-item{position:relative;display:block;cursor:zoom-in;border:1px solid var(--gold-hair);background:#fff;}
.g-gallery-item img{display:block;width:100%;height:auto;}
.g-gallery-extra{margin-top:12px;}
.g-zoom-hint{position:absolute;bottom:10px;right:10px;background:rgba(28,44,60,.85);color:var(--cream);font-family:var(--sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;opacity:0;transition:opacity .2s;}
.g-gallery-item:hover .g-zoom-hint{opacity:1;}
.g-lightbox{position:fixed;inset:0;background:rgba(16,12,7,.93);display:none;align-items:center;justify-content:center;z-index:1000;padding:24px;cursor:zoom-out;}
.g-lightbox.open{display:flex;}
.g-lightbox-img{max-width:96vw;max-height:92vh;box-shadow:0 10px 60px rgba(0,0,0,.6);border:1px solid var(--gold-hair);}
.g-lightbox-close{position:absolute;top:14px;right:26px;background:none;border:none;color:var(--cream);font-size:44px;line-height:1;cursor:pointer;}

/* ---- Stripe payment element (checkout) ----------------------------------- */
#payment-element{margin:1.5rem 0;max-width:520px;}
#stripe-errors{max-width:520px;}
