@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Nunito:wght@300;400;500;600;700&display=swap');

:root{
  --ink:#1b1b1b;
  --muted:#6d6d6d;
  --line:#e8e2d8;
  --paper:#f6f1e8;
  --paper-2:#f1ebe1;
  --card:#ffffff;
  --top-h: 76px;
  --icon:#2d2d2d;
}

*{box-sizing:border-box}
html{scrollbar-gutter:stable;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial;}
a{color:inherit; text-decoration:none}

/* Square UI: remove rounded edges from images + buttons */
img{border-radius:0 !important;}
button{border-radius:0 !important;}
.gNavToggle,
.gMobileNav,
.gMobileNav__link,
.gMobileNav__cta,
.gNav__link,
.gMenu__btn,
.gMenu__panel,
.gMenu__item,
.gCta,
.gBtn,
.gHero__img,
.gIntro__img,
.gTile,
.card,
.gModal__dialog,
.gModal__close{border-radius:0 !important;}

/* Footer spans full gallery width (flex child must not shrink to intrinsic width). */
.gallery > .footer{
  width:100%;
  box-sizing:border-box;
  align-self:stretch;
  min-width:0;
}
.gallery > .footer .footer__inner{
  width:100%;
  box-sizing:border-box;
}

/* Footer row: logo left, COMPANY/SUPPORT columns flush right (same visual as home). */
.gallery .footer .footer__top{
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  width: 100%;
}
.gallery .footer .brand--footer{
  flex: 0 0 auto;
}
.gallery .footer .footer__cols{
  flex: 0 0 auto;
  margin-left: auto;
}

.gallery{min-height:100vh; display:flex; flex-direction:column}

.gTop{position:relative; z-index:30; background:rgba(246,241,232,.92); backdrop-filter: blur(10px); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:18px; padding:14px 18px;}
.gBrand{display:flex; align-items:center; gap:0; min-width:auto;}
@media (min-width: 901px){
  .gTop{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
  }
  .gBrand{justify-self:start;}
  .gNav{justify-self:center; flex:unset;}
  .gCta{justify-self:end;}
}
.gLogoImg{display:block; height:38px; width:auto;}

.gNavToggle{
  display:none;
  width:42px;
  height:42px;
  margin-left:auto;
  border-radius:999px;
  border:1px solid #c9c2b8;
  background: rgba(255,255,255,.45);
  cursor:pointer;
  place-items:center;
  padding:0;
  -webkit-tap-highlight-color: transparent;
}
.gNavToggle:hover{background: rgba(255,255,255,.65); box-shadow: 0 10px 18px rgba(0,0,0,.08); transform: translateY(-1px);}
.gNavToggle:active{transform: translateY(0px);}
.gNavToggle:focus-visible{outline:2px solid #8a5a3c; outline-offset:3px;}

.gNavToggle__icon{width:18px; height:12px; display:block; position:relative;}
.gNavToggle__icon::before,
.gNavToggle__icon::after,
.gNavToggle__icon span{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  border-radius:999px;
  background:var(--icon);
}
.gNavToggle__icon::before{top:0;}
.gNavToggle__icon span{top:5px;}
.gNavToggle__icon::after{bottom:0;}

.gMobileNav{
  position:absolute;
  top: calc(100% + 10px);
  left: 12px;
  right: 12px;
  background: rgba(246,241,232,.98);
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px;
  display:none;
  box-shadow: 0 18px 40px rgba(0,0,0,.10);
}
.gTop[data-nav-open="1"] .gMobileNav{display:grid;}
.gMobileNav__link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 12px;
  border-radius:12px;
  font-size:14px;
  color:#2d2d2d;
  text-decoration:none;
}
.gMobileNav__link:hover{background:rgba(0,0,0,.04);}
.gMobileNav__cta{
  margin-top:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid #c9c2b8;
  background: rgba(255,255,255,.45);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.gMobileNav__cta:hover{background: rgba(255,255,255,.65);}
.gNav{display:flex; gap:18px; align-items:center; justify-content:center; flex:1;}
.gNav__link{font-family:"Nunito", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji", "Segoe UI Emoji"; font-size:13px; padding:6px 8px; border-radius:999px;}
.gNav__link:hover{background:rgba(0,0,0,.04);}
.gNav__link--active,
.gNav__link[aria-current="page"]{background:rgba(0,0,0,.06);}

.gMenu{position:relative;}
.gMenu__btn{font-size:13px; padding:6px 10px; border-radius:999px; border:1px solid transparent; background:transparent; cursor:pointer;}
.gMenu__btn:hover{background:rgba(0,0,0,.04);}
.gMenu__panel{
  position:absolute;
  top: calc(100% + 10px);
  left:50%;
  transform: translateX(-50%);
  min-width: 180px;
  background: rgba(246,241,232,.98);
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px;
  display:none;
  box-shadow: 0 18px 40px rgba(0,0,0,.10);
}
.gMenu:hover .gMenu__panel,
.gMenu:focus-within .gMenu__panel{display:block;}
.gMenu__item{display:flex; padding:10px 10px; border-radius:10px; font-size:13px;}
.gMenu__item:hover{background:rgba(0,0,0,.04);}
.gCta{font-size:12px; text-transform:uppercase; letter-spacing:.12em; border:1px solid #c9c2b8; padding:10px 12px; border-radius:999px; background: rgba(255,255,255,.35);}
.gCta:hover{background: rgba(255,255,255,.6); box-shadow: 0 8px 18px rgba(0,0,0,.06); transform: translateY(-1px);}

.gMain{flex:1; max-width:none; margin:0; padding:0;}
.gHero{display:grid; grid-template-columns: 0.9fr 1.5fr; gap:18px; align-items:center; padding:8px 0 10px;}
.gEyebrow{font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:#7a746b; margin-bottom:8px;}
.gHero h1{font-family:"Cormorant Garamond", ui-serif, Georgia, serif; font-size:64px; line-height:1; margin:0 0 8px;}
.gLead{color:#3a3a3a; line-height:1.75; margin:0; max-width:52ch;}
.gHero__actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px;}
.gBtn{display:inline-flex; align-items:center; justify-content:center; padding:10px 12px; border-radius:999px; border:1px solid #c9c2b8; background: rgba(255,255,255,.35); font-size:13px; letter-spacing:.02em; transition: transform .18s ease, box-shadow .18s ease, background .18s ease;}
.gBtn:hover{background: rgba(255,255,255,.6); box-shadow: 0 10px 20px rgba(0,0,0,.08); transform: translateY(-1px);}
.gBtn--ghost{background: transparent;}
.gBtn--ghost:hover{background: rgba(0,0,0,.04);}
.gHero__img{width:100%; height:360px; border-radius:12px; border:1px solid var(--line); object-fit:cover; display:block; background:#fff;}

/* Intro: photo spans full band; text overlays left with gradient so image shows through toward the right. */
.gIntro{
  background:var(--paper);
}
/* Same width + horizontal padding as .gCats so intro copy lines up with tiles */
.gIntro__inner{
  max-width:1200px;
  margin:0 auto;
  overflow:hidden;
  position:relative;
}
.gIntro__heading{
  font-family:"Cormorant Garamond", ui-serif, Georgia, serif;
  font-size:clamp(32px, 4vw, 48px);
  line-height:1.05;
  font-weight:600;
  margin:0;
  color:#8a5a3c;
  letter-spacing:-0.02em;
}
.gIntro__sub{
  margin:0;
  font-size:clamp(14px, 1.5vw, 16px);
  line-height:1.35;
  color:#3f3833;
  font-weight:500;
}
.gIntro__body{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:#555;
  max-width:42ch;
}
.gIntro__media{
  overflow:hidden;
  background:#111;
}
.gIntro__media picture{display:block; height:100%; min-height:100%;}
.gIntro__img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(1.02) contrast(1.02);
}

@media (min-width: 901px){
  /* Photo full-width behind text; long solid paper on the left, then fade so image shows through. */
  .gIntro__inner{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:253px;
    height:253px;
    min-height:253px;
    max-height:253px;
    align-items:stretch;
    padding:0 18px;
    box-sizing:border-box;
  }
  .gIntro__media{
    grid-column:1;
    grid-row:1;
    z-index:0;
    position:relative;
    height:253px;
    min-height:253px;
    width:100%;
  }
  .gIntro__text{
    grid-column:1;
    grid-row:1;
    z-index:1;
    justify-self:start;
    align-self:stretch;
    width:min(42%, 440px);
    max-width:440px;
    padding:12px 12px 12px 0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
    box-sizing:border-box;
    overflow:hidden;
    pointer-events:none;
    background:linear-gradient(
      90deg,
      rgba(246, 241, 232, 1) 0%,
      rgba(246, 241, 232, 1) 52%,
      rgba(246, 241, 232, 0.88) 64%,
      rgba(246, 241, 232, 0.38) 88%,
      rgba(246, 241, 232, 0) 100%
    );
  }
  .gIntro__text *{
    pointer-events:auto;
  }
  .gIntro__heading{
    text-shadow:0 0 14px rgba(246, 241, 232, 0.98), 0 1px 2px rgba(255, 255, 255, 0.9);
  }
  .gIntro__sub,
  .gIntro__body{
    text-shadow:0 0 10px rgba(246, 241, 232, 0.95), 0 1px 1px rgba(255, 255, 255, 0.85);
  }
}

@media (max-width: 900px){
  .gIntro__inner{
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:0;
    max-height:none;
  }
  .gIntro__media{
    order:-1;
    position:relative;
    z-index:0;
    height:220px;
    min-height:220px;
    max-height:220px;
    width:100%;
  }
  .gIntro__text{
    position:relative;
    z-index:1;
    width:100%;
    max-width:none;
    padding:24px 18px 32px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
    border-right:0;
    border-top:0;
    background:linear-gradient(
      180deg,
      rgba(246, 241, 232, 0.98) 0%,
      rgba(246, 241, 232, 0.94) 100%
    );
    overflow:visible;
  }
}

/* Four-column strip under intro (aligns with 1200px + 18px gutters) */
.gPillars{
  background:var(--paper);
}
.gPillars__inner{
  max-width:1200px;
  margin:0 auto;
  padding:44px 18px 29px;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
}
.gPillars__head{
  max-width:1200px;
  margin:0 auto;
  padding:44px 18px 0;
  text-align:center;
  box-sizing:border-box;
}
.gPillars__head .gLogos__k{
  margin:0;
}
.gPillars__head + .gPillars__inner{
  padding-top:16px;
}
.gPillars.gPillars--2x2 .gPillars__inner{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}
.gPillars.gPillars--3 .gPillars__inner{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gPillars.gPillars--5 .gPillars__inner{
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.gPillars.gPillars--single .gPillars__inner{
  grid-template-columns: 1fr;
}

.gPillars.gPillars--2x2 .gPillars__item,
.gPillars.gPillars--single .gPillars__item{
  padding: 16px 14px;
}
.gPillars.gPillars--2x2 .gPillars__item:first-child,
.gPillars.gPillars--2x2 .gPillars__item:last-child,
.gPillars.gPillars--single .gPillars__item:first-child,
.gPillars.gPillars--single .gPillars__item:last-child{
  padding-left: 14px;
  padding-right: 14px;
}
.gPillars.gPillars--2x2 .gPillars__item + .gPillars__item{
  border-left: 0;
}
.gPillars.gPillars--2x2 .gPillars__item:nth-child(2n){
  border-left: 1px solid var(--line);
}
.gPillars.gPillars--2x2 .gPillars__item:nth-child(n + 3){
  border-top: 1px solid var(--line);
}
.gPillars.gPillars--single .gPillars__item{
  border-left: 0 !important;
}

/* Feature cards: same gradient + image style as gIntro */
.gFeatGrid{
  max-width:1200px;
  margin:0 auto;
  padding:14px 18px 18px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
  box-sizing:border-box;
}
.gFeatGrid.gFeatGrid--3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Logos grid (4 per row, 2 rows) */
.gLogos{
  background:var(--paper);
}
.gLogos__inner{
  max-width:1200px;
  margin:0 auto;
  padding:22px 18px 26px;
  box-sizing:border-box;
}
.gLogos__k{
  margin:0 0 14px;
  font-size:10px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:#7a5c48;
}
.gLogos__grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:14px;
}
.gLogos__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:140px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.35);
  padding:10px 12px;
  box-sizing:border-box;
  text-align:center;
}
.gLogos__img{
  max-width:100%;
  max-height:44px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:saturate(.96) contrast(.98);
  opacity:.92;
}
.gLogos__text{
  margin-top:10px;
  font-size:12px;
  line-height:1.55;
  color:#3f3833;
}
.gLogos__text strong{
  font-weight:800;
  color:#2a2018;
}
@media (max-width:900px){
  .gLogos__grid{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
.gLogos__note{
  margin:18px 0 0;
  font-size:14px;
  line-height:1.75;
  color:#3f3833;
  max-width:80ch;
}
.gLogos__cta{
  margin-top:14px;
  display:inline-flex;
}
@media (max-width:900px){
  .gLogos__item{min-height:0;}
}

/* Made locally: local manufacturing panel */
.gLocal{
  background:var(--paper);
}
.gLocal__inner{
  max-width:1200px;
  margin:0 auto;
  padding:18px;
  box-sizing:border-box;
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:0;
  align-items:stretch;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
}
.gLocal__copy{
  border:0;
  border-radius:0;
  background:rgba(255,255,255,.35);
  padding:18px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  text-align:left;
}
.gLocal__k{
  font-size:10px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:#7a5c48;
}
.gLocal__h{
  font-family:"Cormorant Garamond", ui-serif, Georgia, serif;
  font-size:clamp(24px, 3vw, 36px);
  line-height:1.08;
  font-weight:600;
  margin:0;
  color:#8a5a3c;
  letter-spacing:-0.02em;
}
.gLocal__headRow{
  display:grid;
  grid-template-columns: 1fr auto;
  gap:14px;
  align-items:start;
}
.gLocal__headText{
  min-width:0;
}
.gLocal__headText .gLocal__p{
  margin-top:6px;
}
.gLocal__p{
  margin:0;
  font-size:12px;
  line-height:1.65;
  color:#3f3833;
  max-width:42ch;
}
.gLocal__badge{
  margin-left:auto;
  width:242px;
  align-self:start;
}
.gLocal__badge picture{display:block;}
.gLocal__badgeImg{
  width:242px;
  height:242px;
  display:block;
  opacity:.92;
  filter:saturate(.98) contrast(.98);
  object-fit:contain;
}
.gLocal__stats{
  margin-top:8px;
  display:grid;
  grid-template-columns: repeat(3, max-content);
  gap:18px;
  justify-items:start;
  align-items:start;
  text-align:left;
  max-width:42ch;
}
.gLocal__stat{
  border-top:1px solid var(--line);
  padding-top:10px;
  width:auto;
}
.gLocal__n{
  font-weight:800;
  font-size:16px;
  color:#2a2018;
}
.gLocal__l{
  margin-top:4px;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#6a5445;
  line-height:1.35;
}
.gLocal__media{
  border:0;
  border-radius:0;
  overflow:hidden;
  background:#111;
  position:relative;
  padding:0;
  box-sizing:border-box;
}
.gLocal__media picture{display:block; width:100%;}
.gLocal__img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0;
  display:block;
}
.gLocal__overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:12px 14px 13px;
  background:rgba(35, 35, 35, 0.72);
  color:#f3f1ed;
  backdrop-filter: blur(6px);
  border-radius:0;
}
.gLocal__overlayK{
  font-size:10px;
  letter-spacing:.24em;
  text-transform:uppercase;
  opacity:.9;
  font-weight:600;
}
.gLocal__overlayP{
  margin-top:6px;
  font-size:12px;
  line-height:1.55;
  color:#f3f1ed;
  opacity:.92;
}
@media (max-width:900px){
  .gLocal__inner{grid-template-columns: 1fr; }
  .gLocal__media{min-height:220px;}
  .gLocal__headRow{
    grid-template-columns: 1fr;
  }
  .gLocal__badge{
    width:110px;
  }
  .gLocal__badgeImg{
    width:110px;
    height:110px;
  }
  .gLocal__stats{
    grid-template-columns: repeat(2, max-content);
  }
}

/* Process pages: align fuWarm tiles with 1200px + 18px gutters */
.gallery .gMain .fuWarm__row{
  max-width:1200px;
  margin:0 auto;
  padding:0 18px;
  box-sizing:border-box;
}
.gallery .gMain .fuWarm__row{
  grid-template-columns: 1fr;
  gap: 14px;
}
.gallery .gMain .fuWarm__k{
  color:#8a5a3c;
}
.gallery .gMain .fuWarm__grid{
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, 152px);
  justify-content: center;
  column-gap: 152px;
}
@media (max-width:900px){
  .gallery .gMain .fuWarm__grid{
    grid-template-columns: repeat(2, 152px);
    column-gap: 152px;
  }
}
@media (max-width:520px){
  .gallery .gMain .fuWarm__grid{
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
}
.gFeatCard{
  position:relative;
  border:1px solid var(--line);
  background:#111;
  overflow:hidden;
  height:253px;
}
.gFeatCard--tall{height:253px;}
.gFeatCard--full{
  grid-column:1 / -1;
  height:253px;
}
.gFeatMedia,
.gFeatMedia picture{display:block; height:100%;}
.gFeatImg{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(1.02) contrast(1.02);
}
.gFeatText{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  width:min(62%, 520px);
  padding:14px 14px 14px 14px;
  box-sizing:border-box;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    rgba(246, 241, 232, 1) 0%,
    rgba(246, 241, 232, 1) 52%,
    rgba(246, 241, 232, 0.88) 64%,
    rgba(246, 241, 232, 0.38) 88%,
    rgba(246, 241, 232, 0) 100%
  );
}
.gFeatText a,
.gFeatText button,
.gFeatText input,
.gFeatText select,
.gFeatText textarea{
  pointer-events:auto;
}
.gFeatK{
  margin:0;
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#2d2d2d;
  line-height:1.25;
}
.gFeatP{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:#2a2622;
  font-weight:500;
  max-width:44ch;
}

/* Simple text sections (process pages) */
.gCopy{
  background:var(--paper);
}
.gCopy__inner{
  max-width:1200px;
  margin:0 auto;
  padding:28px 18px 30px;
  box-sizing:border-box;
}
.gCopy__k{
  margin:0 0 10px;
  font-size:10px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:#7a5c48;
}
.gCopy__h{
  margin:0 0 12px;
  font-family:"Cormorant Garamond", ui-serif, Georgia, serif;
  font-size:clamp(28px, 3.2vw, 40px);
  line-height:1.1;
  font-weight:600;
  letter-spacing:-0.01em;
  color:#2a2018;
}
.gCopy__p{
  margin:0 0 10px;
  font-size:14px;
  line-height:1.75;
  color:#3f3833;
  max-width:70ch;
}
.gGridCards{
  margin-top:16px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
}
.gCard{
  background:rgba(255,255,255,.35);
  border:1px solid var(--line);
  padding:16px 14px;
}
.gCard__k{
  margin:0 0 6px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#2d2d2d;
}
.gCard__p{
  margin:0;
  font-size:13px;
  line-height:1.7;
  color:#555;
}
.gCardGrid2{
  margin-top:16px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}
.gCtaRow{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}


@media (max-width:900px){
  .gGridCards{grid-template-columns:1fr;}
  .gCardGrid2{grid-template-columns:1fr;}
}

@media (max-width:900px){
  .gFeatGrid{grid-template-columns:1fr; padding:14px 18px 18px;}
  .gFeatText{width:100%; background:linear-gradient(180deg, rgba(246, 241, 232, 0.98) 0%, rgba(246, 241, 232, 0.94) 100%);}
  .gFeatCard,
  .gFeatCard--tall,
  .gFeatCard--full{height:220px;}
}
@media (max-width:520px){
  .gFeatCard,
  .gFeatCard--tall,
  .gFeatCard--full{height:176px;}
}
.gPillars__item{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:12px;
  padding:0 14px;
  min-width:0;
}
.gPillars__item:first-child{padding-left:0;}
.gPillars__item:last-child{padding-right:0;}
.gPillars__item + .gPillars__item{border-left:1px solid var(--line);}
.gPillars__icon{
  flex:0 0 auto;
  width:40px;
  height:40px;
  color:var(--icon);
}
.gPillars__icon img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left top;
}
.gPillars__copy{min-width:0;}
.gPillars__title{
  margin:0 0 6px;
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#2d2d2d;
  line-height:1.25;
}
.gPillars__desc{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:#555;
}

@media (max-width:900px){
  .gPillars__head{
    padding-top:35px;
  }
  .gPillars__inner{
    grid-template-columns:1fr 1fr;
    row-gap:0;
    column-gap:0;
    padding:35px 18px 24px;
  }
  .gPillars__head + .gPillars__inner{
    padding-top:12px;
  }
  .gPillars.gPillars--5 .gPillars__inner{
    grid-template-columns:1fr 1fr;
  }
  .gPillars.gPillars--3 .gPillars__inner{
    grid-template-columns:1fr;
  }
  .gPillars__item{
    border-left:0 !important;
    padding:16px 14px;
    border-top:1px solid var(--line);
  }
  .gPillars__item:first-child,
  .gPillars__item:nth-child(2){border-top:0;padding-top:0;}
  .gPillars__item:nth-child(2),
  .gPillars__item:nth-child(4){border-left:1px solid var(--line);}
  .gPillars__item:nth-child(1),
  .gPillars__item:nth-child(3){padding-left:0;}
  .gPillars__item:nth-child(2),
  .gPillars__item:nth-child(4){padding-right:0;}
}
@media (max-width:520px){
  .gPillars__inner{
    grid-template-columns:1fr;
  }
  .gPillars__item{
    border-left:0 !important;
    padding:14px 0 !important;
  }
  .gPillars__item + .gPillars__item{border-top:1px solid var(--line);}
  .gPillars__item:first-child{border-top:0;padding-top:0;}
}

.gCats{
  flex: 0 0 auto;
  max-width:1200px;
  width:100%;
  margin: 0 auto;
  padding:14px 18px 18px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
}
.gTile{position:relative; border-radius:14px; overflow:hidden; border:1px solid var(--line); background:#fff; min-height:176px; display:block; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, opacity .18s ease;}
.gTile:hover{transform: translateY(-2px); box-shadow: 0 16px 30px rgba(0,0,0,.10); filter:saturate(1.02) contrast(1.02);}
.gTile__img{width:100%; height:209px; object-fit:cover; display:block; opacity:.96;}
.gTile__overlay{
  position:absolute;
  inset:0;
  padding:12px 12px 12px;
  background: rgba(0,0,0,.50);
  color:#fff;
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  transition: opacity .18s ease;
}
.gTile:hover .gTile__overlay{opacity:0;}
.gTile__kicker{font-size:10px; letter-spacing:.26em; text-transform:uppercase; opacity:.92;}
.gTile__title{
  font-family:"Cormorant Garamond", ui-serif, Georgia, serif;
  font-size:26px;
  line-height:1.14;
  margin-top:4px;
  margin-bottom:0;
  width:100%;
  max-width:100%;
  text-align:left;
  color:rgba(255,255,255,.97);
  text-shadow:
    0 1px 14px rgba(0,0,0,.78),
    0 2px 28px rgba(0,0,0,.42);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  overflow-wrap:break-word;
  padding-bottom:14px;
  background-image:linear-gradient(90deg, #cfa06a, #d9b080);
  background-size:44px 2px;
  background-position:left bottom;
  background-repeat:no-repeat;
}

.gFilters{display:flex; gap:10px; flex-wrap:wrap; padding:14px 0 6px;}
.chip{border:1px solid #c9c2b8; background: rgba(255,255,255,.35); padding:8px 12px; border-radius:999px; font-size:13px; cursor:pointer;}
.chip:hover{background: rgba(255,255,255,.6);}
.chip--active{background: rgba(0,0,0,.06); border-color: rgba(0,0,0,.18);}

.gGrid{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:14px; padding:10px 0 20px;}
.card{background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, opacity .18s ease;}
.card:hover{transform: translateY(-2px); box-shadow: 0 16px 30px rgba(0,0,0,.08); filter:saturate(1.02) contrast(1.02);}
.card:active{transform: translateY(-1px);}
.card__img{width:100%; height:209px; object-fit:cover; display:block; background:#fff;}
.card:hover .card__img{opacity:.96;}
.card__body{padding:12px 12px 14px;}
.card__title{font-family:"Cormorant Garamond", ui-serif, Georgia, serif; font-size:22px; margin:0 0 4px;}
.card__desc{color:#555; font-size:13px; line-height:1.6;}
.card__link{display:inline-flex; margin-top:10px; font-size:12px; color:#2d2d2d; text-decoration:underline; text-underline-offset: 3px;}
.card__link:hover{opacity:.85;}

.gModal{position:fixed; inset:0; display:none; z-index:50;}
.gModal--open{display:block;}
.gModal__backdrop{position:absolute; inset:0; background:rgba(10,10,10,.45); backdrop-filter: blur(4px);}
.gModal__dialog{
  position:relative;
  max-width: 980px;
  width: min(980px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  margin: 14px auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  display:grid;
  grid-template-columns: 1.15fr 1fr;
  box-shadow: 0 30px 90px rgba(0,0,0,.25);
}
.gModal__close{
  position:absolute;
  top:10px;
  right:10px;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.85);
  cursor:pointer;
  font-size:20px;
  line-height:1;
}
.gModal__close:hover{background:#fff; box-shadow: 0 10px 22px rgba(0,0,0,.12); transform: translateY(-1px);}
.gModal__media{background:#faf7f1; border-right:1px solid var(--line); display:flex; align-items:center; justify-content:center;}
.gModal__img{width:100%; height:100%; max-height: calc(100vh - 28px); object-fit:cover; display:block;}
.gModal__body{padding:16px 16px 18px; overflow:auto;}
.gModal__title{font-family:"Cormorant Garamond", ui-serif, Georgia, serif; font-size:34px; line-height:1.05; margin:6px 0 10px;}
.gModal__desc{color:#3a3a3a; line-height:1.75; font-size:14px; white-space:pre-wrap;}
.gModal__actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;}
.gModalLock{overflow:hidden;}


@media (max-width: 900px){
  .gTop{gap:10px 12px;}
  .gBrand{min-width:0; flex:0 0 auto;}
  .gNav{display:none;}
  .gCta{display:none;}
  .gNavToggle{display:grid;}
  .gHero{grid-template-columns:1fr; }
  .gHero__img{height:280px;}
  :root{ --top-h: 62px; }
  .gCats{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .gTile__img{height:198px;}
  .gTile__title{font-size:20px;}
  .gGrid{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .gModal__dialog{grid-template-columns:1fr; max-width: 720px;}
  .gModal__media{border-right:0; border-bottom:1px solid var(--line);}
  .gModal__img{height: 280px; max-height: 40vh;}

  .gallery .footer .footer__top{
    flex-direction: column;
    align-items: flex-start;
  }
  .gallery .footer .footer__cols{
    margin-left: 0;
  }
}
@media (max-width: 520px){
  .gHero h1{font-size:48px;}
  .gIntro__media{
    height:176px;
    min-height:176px;
    max-height:176px;
  }
  .gCats{grid-template-columns:1fr;}
  .gGrid{grid-template-columns:1fr;}
  .gModal__title{font-size:28px;}
}