/* Cajgerica — gothic botanical atelier. Self-hosted type, original photographs. */
@font-face {
  font-family: 'Grenze Gotisch';
  src: url('assets/fonts/GrenzeGotisch.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --cg-cream: #100d16;
  --cg-paper: #1b1522;
  --cg-green: #c6db77;
  --cg-deep: #dce99f;
  --cg-ink: #f0e9df;
  --cg-muted: #bdb2c5;
  --cg-line: #4a3c52;
  --cg-moss: #2b301e;
  --cg-gold: #c5a36d;
  --cg-purple: #c4a4df;
  --cg-plum: #512d65;
  --cg-serif: 'Grenze Gotisch', Georgia, 'Times New Roman', serif;
}

body.cg-theme.custom-background, body.cg-theme {
  background: radial-gradient(ellipse at 85% 14%, #34203d66, transparent 45%), var(--cg-cream);
  color: var(--cg-ink);
}
::selection { background: var(--cg-green); color: #100d16; }
h1, h2, h3, h4, h5, h6 { color: var(--cg-ink); }
a, button, input, textarea, select { -webkit-tap-highlight-color: #c6db7733; }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible { outline: 2px solid var(--cg-green); outline-offset: 5px; }
a:hover { color: var(--cg-deep); }
input, textarea, select { color: var(--cg-ink); }
input::placeholder, textarea::placeholder { color: #a99bb3; opacity: 1; }

.cg-preview {
  background: #291a32;
  color: #dcc5eb;
  border-bottom: 1px solid #6a457d;
  font-size: 10px;
  letter-spacing: .17em;
  padding: 9px 16px;
}
.cg-header { background: #100d16; border-bottom: 1px solid #806343; }
.cg-brand, .cg-brand:hover { color: var(--cg-gold); }
.cg-brand-main { font-size: 53px; font-weight: 600; letter-spacing: -.025em; }
.cg-brand-mark { color: var(--cg-green); font-size: 32px; margin-left: 8px; }
.cg-brand-sub { color: #d0c1d6; font-size: 7px; letter-spacing: 1.65px; margin-top: 9px; }
.cg-nav a, .cg-cart { color: var(--cg-ink); }
.cg-nav a { letter-spacing: .02em; }
.cg-nav a:hover, .cg-nav .current-menu-item > a { color: var(--cg-green); }
.cg-nav .current-menu-item > a { box-shadow: inset 0 -1px var(--cg-gold); }
.cg-cart-count { color: #100d16; background: var(--cg-green); }
.cg-search { border-color: #776483; }
.cg-search input { color: var(--cg-ink); }
.cg-menu-toggle { color: var(--cg-green); border-color: #766047; }

.cg-hero { gap: 70px; padding-block: 70px 60px; }
.cg-hero-copy { position: relative; }
.cg-hero h1 { font-size: clamp(52px, 6.2vw, 88px); line-height: .99; letter-spacing: -.015em; font-weight: 500; }
.cg-hero em, .cg-callout em { color: var(--cg-green); font-weight: 400; }
.cg-eyebrow { color: var(--cg-gold); font-size: 10px; letter-spacing: 2px; }
.cg-hero-description { color: #c7bbce; max-width: 410px; }
.cg-hero-note { color: var(--cg-purple); font: italic 17px/1.5 Georgia, serif; }
.cg-hero-note::before { background: var(--cg-gold); }

.cg-button, .cg-theme a.button, .cg-theme button.button,
.cg-theme input.button, .cg-theme #respond input#submit {
  background: var(--cg-green);
  border-color: var(--cg-green);
  color: #15140c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .025em;
  padding: 15px 24px;
  box-shadow: 4px 4px 0 #c6db7722;
  transition: background .2s, color .2s, border-color .2s;
}
.cg-button:hover, .cg-theme a.button:hover, .cg-theme button.button:hover,
.cg-theme input.button:hover { background: #dce99f; border-color: #dce99f; color: #15140c; }
.cg-button.cg-outline { color: var(--cg-purple); border-color: #a780bd; background: transparent; box-shadow: 4px 4px 0 #a780bd22; }
.cg-button.cg-outline:hover { color: #fff3ff; background: var(--cg-plum); border-color: #c4a4df; }

.cg-hero-visual { padding-left: 18px; }
.cg-hero-visual::before {
  inset: -15px 16px 40px 0;
  border: 1px solid var(--cg-gold);
  border-radius: 50% 50% 0 0 / 34% 34% 0 0;
  opacity: .75;
}
.cg-hero-visual::after {
  content: '✧';
  position: absolute;
  top: -42px;
  left: calc(50% - 4px);
  color: var(--cg-gold);
  background: var(--cg-cream);
  font: 32px/1 Georgia, serif;
  padding: 0 9px;
  pointer-events: none;
}
.cg-hero-visual > .cg-photo-button { border: 1px solid #7d6548; border-radius: 50% 50% 0 0 / 34% 34% 0 0; overflow: hidden; }
.cg-hero-visual .cg-photo-button img { aspect-ratio: 1/1.08; border-radius: inherit; }
.cg-photo-hint { color: var(--cg-green); background: #130e1beF; border: 1px solid #b7a06a; letter-spacing: .03em; }
.cg-photo-caption { color: #b8a8c2; }
.cg-seal {
  background: #21122d;
  color: var(--cg-purple);
  border: 4px solid var(--cg-cream);
  outline: 1px solid var(--cg-gold);
  box-shadow: 0 0 0 5px var(--cg-cream);
  font: italic 12px/1.3 Georgia, serif;
  bottom: 63px;
}
.cg-seal strong { color: var(--cg-green); font: 400 28px/1.15 var(--cg-serif); }
.cg-strip { background: #25192d; border-block: 1px solid #6b4d77; color: #ddc7e7; }
.cg-strip > .cg-wrap { letter-spacing: 1.4px; padding-block: 20px; }
.cg-strip i { color: var(--cg-gold); }

.cg-section-heading h2 { font-size: clamp(38px, 4.4vw, 57px); line-height: 1.12; }
.cg-section-heading { border-bottom: 1px solid #594462; padding-bottom: 25px; }
.cg-category { color: var(--cg-ink); }
.cg-category-image { border: 1px solid #8f744f; background: #251a2c; padding: 5px; border-radius: 46% 46% 0 0 / 28% 28% 0 0; }
.cg-category img { border-radius: inherit; }
.cg-category h3 { color: var(--cg-ink); font-size: 27px; }
.cg-category h3 span { color: var(--cg-green); font-family: Georgia, serif; font-size: 23px; }
.cg-category:hover .cg-category-image { border-color: var(--cg-green); }
.cg-category:hover h3 { color: var(--cg-green); }
.cg-category p { color: var(--cg-muted); font-size: 12px; }
.cg-inspiration-section { background: #19111f; border-color: #584063; }
.cg-filter { border: 1px solid #765f84; border-radius: 2px; color: #decee6; padding: 9px 17px; }
.cg-filter:hover { color: var(--cg-green); border-color: var(--cg-green); }
.cg-filter[aria-pressed=true] { background: var(--cg-green); border-color: var(--cg-green); color: #15140c; }
.cg-work { background: #211828; border: 1px solid #5b4267; padding: 9px 9px 16px; }
.cg-work-image { background: #100d16; }
.cg-work-caption { padding: 17px 8px 0; }
.cg-work-caption h3 { color: var(--cg-ink); font-size: 28px; }
.cg-work-caption p { color: #c9b0d5; letter-spacing: .035em; font-size: 10px; }
.cg-work-caption .cg-work-arrow { color: var(--cg-gold); }
.cg-collection-note a { color: var(--cg-green); text-underline-offset: 4px; }
.cg-callout h2 { font-size: clamp(42px, 4.6vw, 60px); line-height: 1.1; }
.cg-callout-image { border: 1px solid #987a53; padding: 7px; background: #211828; }
.cg-contact { border-color: #79603f; }
.cg-contact h2 { font-size: 52px; }
.cg-contact-links a { border-color: #685071; color: var(--cg-ink); }
.cg-contact-links strong { font-size: 29px; }
.cg-contact-links b { color: var(--cg-green); }
.cg-contact-links a:hover strong { color: var(--cg-green); }
.cg-contact-links span { color: #c9b0d5; }
.cg-footer { background: #0c0910; color: #d8cddd; border-top: 1px solid #826343; }
.cg-footer-brand { font-size: 42px; color: var(--cg-gold) !important; }
.cg-footer-bottom { color: #b9a9c2; border-color: #4b3656; }
.cg-footer-links a:hover { color: var(--cg-green); }

.cg-theme .entry-title, .cg-theme .woocommerce-products-header__title { color: var(--cg-ink); font-weight: 500; font-size: clamp(42px, 5vw, 64px); }
.cg-page-intro h2 { font-size: 39px; }
.cg-inquiry { background: #211828; border-color: #796047; }
.cg-inquiry input, .cg-inquiry textarea { background: #120e18; border-color: #836c91; color: var(--cg-ink); }
.cg-inquiry label { color: #e6dce8; }
.cg-inquiry-preview h3 { font-size: 34px; }
.cg-dialog { border: 1px solid var(--cg-gold); background: #1b1322; }
.cg-dialog::backdrop { background: #08050df2; }
.cg-dialog h2 { color: var(--cg-ink); font-size: 30px; }
.cg-dialog-image { background: #100d16; }
.cg-dialog-close { color: var(--cg-green); border-color: #9b80a9; }

.cg-theme .woocommerce-breadcrumb a, .cg-theme .woocommerce-MyAccount-navigation a { color: var(--cg-green); }
.cg-theme .woocommerce-ordering select { color: var(--cg-ink); border-color: #836c91; }
.cg-shop-categories a { border-color: #765f84; color: #ddcee5; border-radius: 2px; }
.cg-shop-categories a:hover { border-color: var(--cg-green); color: var(--cg-green); }
.cg-shop-categories a[aria-current=page] { background: var(--cg-green); border-color: var(--cg-green); color: #15140c; }
.cg-theme .cg-shop-empty { border-color: #806343; background: #211828; }
.cg-shop-empty h2 { font-size: 37px; }
.cg-theme ul.products li.product img { background: #1b1522; border: 1px solid #806343; padding: 5px; }
.cg-theme ul.products li.product .woocommerce-loop-product__title { color: var(--cg-ink); font-size: 28px; }
.cg-theme .woocommerce-info, .cg-theme .woocommerce-message, .cg-theme .woocommerce-noreviews { background: #282b1c; color: #e3edbf; border-color: var(--cg-green); }
.cg-theme .woocommerce-error { background: #432536; color: #f5d4e1; border-color: #e7a0bb; }
.cg-theme .woocommerce input.input-text, .cg-theme .woocommerce textarea,
.cg-theme .woocommerce .quantity .qty { background: #120e18; color: var(--cg-ink); border-color: #836c91; }
.cg-theme .woocommerce table.shop_table { color: var(--cg-ink); background: #1b1522; }
.cg-theme table:not(.has-background) th { background: #30223a; color: #eee3f3; }
.cg-theme table:not(.has-background) tbody tr:nth-child(2n) td,
.cg-theme table:not(.has-background) tbody td { background: #1b1522; color: var(--cg-ink); }
.cg-theme .wc-block-components-button:not(.is-link) { background: var(--cg-green); color: #15140c; border: 1px solid var(--cg-green); }
.cg-theme .wc-block-components-text-input input,
.cg-theme .wc-block-components-textarea, .cg-theme .wc-block-components-combobox-control input,
.cg-theme .wc-block-components-select .wc-block-components-select__container { background: #17101e; color: var(--cg-ink); border-color: #836c91; }
.cg-theme .wc-block-components-text-input label,
.cg-theme .wc-block-components-select__label,
.cg-theme .wc-block-components-text-input.is-active label { color: #d4bddf; }
.cg-theme .wc-block-components-totals-wrapper,
.cg-theme .wc-block-components-order-summary-item,
.cg-theme .wc-block-cart-items td { border-color: #685071; }

@media (max-width: 1100px) {
  .cg-brand-main { font-size: 47px; }
  .cg-hero { gap: 42px; }
  .cg-hero h1 { font-size: 72px; }
  .cg-category h3 { font-size: 25px; }
}
@media (max-width: 780px) {
  .cg-header-inner { min-height: 94px; }
  .cg-brand-main { font-size: 43px; }
  .cg-brand-sub { font-size: 6px; letter-spacing: 1.1px; }
  .cg-hero { gap: 62px; padding-block: 42px 40px; }
  .cg-hero h1 { font-size: clamp(56px, 10vw, 78px); }
  .cg-hero-visual { max-width: 510px; padding-left: 14px; }
  .cg-hero-visual::before { inset: -12px 12px 38px 0; }
  .cg-seal { bottom: 59px; }
  .cg-strip > .cg-wrap { font-size: 9px; letter-spacing: .6px; padding-block: 16px; }
  .cg-section-heading h2 { font-size: 42px; }
  .cg-category h3 { font-size: 27px; }
  .cg-work { padding: 5px 5px 13px; }
  .cg-work-caption { padding: 13px 4px 0; gap: 8px; }
  .cg-work-caption h3 { font-size: 25px; overflow-wrap: anywhere; }
  .cg-work-caption p { font-size: 9px; }
  .cg-work .cg-photo-hint { font-size: 9px; padding: 6px 8px; bottom: 8px; right: 8px; }
  .cg-callout { gap: 30px; }
  .cg-callout h2 { font-size: 49px; }
  .cg-contact h2 { font-size: 44px; }
  .cg-contact-links strong { font-size: 28px; }
  .cg-theme ul.products li.product .woocommerce-loop-product__title { font-size: 25px; }
  .cg-dialog h2 { font-size: 26px; }
}
@media (max-width: 420px) {
  .cg-preview { letter-spacing: .07em; font-size: 9px; }
  .cg-header-inner { gap: 8px; }
  .cg-brand-main { font-size: 38px; }
  .cg-brand-mark { font-size: 26px; margin-left: 4px; }
  .cg-brand-sub { font-size: 5.5px; letter-spacing: .7px; }
  .cg-header-actions { gap: 8px; }
  .cg-hero h1 { font-size: clamp(53px, 14vw, 61px); }
  .cg-eyebrow { font-size: 9px; letter-spacing: 1.25px; }
  .cg-hero-note { font-size: 15px; }
  .cg-section-heading h2 { font-size: 38px; }
  .cg-category h3 { font-size: 23px; }
  .cg-category p { font-size: 11px; }
  .cg-work-caption h3 { font-size: 23px; }
  .cg-filter { font-size: 11px; padding: 8px 12px; }
  .cg-contact-links strong { font-size: 27px; }
}

@media (min-width: 1101px) {
  .cg-categories-auto { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cg-categories-auto .cg-category h3 { font-size: 20px; }
}
@media (min-width: 781px) and (max-width: 1100px) {
  .cg-categories-auto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
