:root {
    --gc-ink: #24352f;
    --gc-muted: #68766f;
    --gc-forest: #405f52;
    --gc-forest-dark: #29443a;
    --gc-sage: #a9b9a9;
    --gc-blush: #ecd8d0;
    --gc-cream: #f8f4ec;
    --gc-paper: #fffdf9;
    --gc-gold: #b5965b;
    --gc-line: rgba(36, 53, 47, .14);
}

body.page-browse .banner { display: none; }
body.page-payment .banner, body.page-complete .banner { display: none; }
body.page-browse #main { background: var(--gc-cream); }

.gc-page,
.gc-page * { box-sizing: border-box; }

.gc-page {
    color: var(--gc-ink);
    background: var(--gc-cream);
    font-family: "Helvetica Neue", Arial, sans-serif;
    line-height: 1.55;
}

.gc-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
    min-height: 600px;
    overflow: hidden;
    background: linear-gradient(128deg, #f6eee4 0%, #f2e4dc 55%, #dbe3d8 100%);
}

.gc-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .35;
    background-image: radial-gradient(rgba(64, 95, 82, .22) .7px, transparent .7px);
    background-size: 9px 9px;
    pointer-events: none;
}

.gc-hero__copy {
    position: relative;
    z-index: 2;
    align-self: center;
    max-width: 690px;
    padding: 90px max(6vw, 60px);
}

.gc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    color: var(--gc-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.gc-eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--gc-gold); }

.gc-hero h1 {
    margin: 0 0 28px;
    color: var(--gc-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(48px, 5vw, 78px);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: .98;
}

.gc-hero h1 em { color: var(--gc-forest); font-weight: 400; }
.gc-hero__copy > p { max-width: 570px; margin: 0; color: #596860; font-size: 18px; line-height: 1.75; }

.gc-trust { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 38px; color: var(--gc-forest); font-size: 13px; font-weight: 600; }
.gc-trust span { display: inline-flex; align-items: center; gap: 8px; }
.gc-trust i { color: var(--gc-gold); }

.gc-hero__art { position: relative; display: grid; place-items: center; min-height: 520px; }
.gc-orbit { position: absolute; border: 1px solid rgba(64, 95, 82, .16); border-radius: 50%; }
.gc-orbit--one { width: 520px; height: 520px; }
.gc-orbit--two { width: 390px; height: 390px; border-color: rgba(181, 150, 91, .25); }

.gc-preview-card {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(78%, 450px);
    aspect-ratio: 1.58;
    padding: 30px;
    overflow: hidden;
    color: #fffdf7;
    background: linear-gradient(135deg, #2c4a3e, #648071);
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 20px;
    box-shadow: 0 32px 70px rgba(41, 68, 58, .27);
    flex-direction: column;
    justify-content: space-between;
    transform: rotate(-5deg);
}

.gc-preview-card::after {
    content: "";
    position: absolute;
    width: 250px;
    height: 250px;
    right: -75px;
    bottom: -110px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    box-shadow: 0 0 0 28px rgba(255,255,255,.035), 0 0 0 58px rgba(255,255,255,.025);
}

.gc-preview-card__top { display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 700; letter-spacing: .22em; }
.gc-preview-card__flower { color: #d9c18e; font-size: 26px; }
.gc-preview-card__middle small { display: block; margin-bottom: 8px; color: #d9c18e; font-size: 9px; letter-spacing: .22em; }
.gc-preview-card__middle strong { font-family: Georgia, serif; font-size: clamp(24px, 2.2vw, 34px); font-weight: 400; line-height: 1.16; }
.gc-preview-card__footer { position: relative; z-index: 1; font-size: 8px; letter-spacing: .14em; }

.gc-shop { max-width: 1440px; margin: 0 auto; padding: 100px 6vw 120px; }
.gc-section-heading { display: flex; align-items: flex-start; gap: 22px; margin-bottom: 45px; }
.gc-section-heading > span { color: var(--gc-gold); font-family: Georgia, serif; font-size: 14px; }
.gc-section-heading h2 { margin: -8px 0 6px; color: var(--gc-ink); font-family: Georgia, serif; font-size: clamp(34px, 3vw, 48px); font-weight: 400; line-height: 1.15; }
.gc-section-heading p { margin: 0; color: var(--gc-muted); font-size: 15px; }

.gc-purchase-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.gc-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }

.gc-option {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    color: inherit;
    text-align: left;
    background: var(--gc-paper);
    border: 1px solid transparent;
    border-radius: 18px;
    box-shadow: 0 8px 30px rgba(58, 70, 64, .05);
    cursor: pointer;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.gc-option:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(58, 70, 64, .1); }
.gc-option.is-selected { border-color: var(--gc-forest); box-shadow: 0 14px 38px rgba(64, 95, 82, .14); }

.gc-option__visual {
    position: relative;
    display: flex;
    min-height: 150px;
    padding: 22px;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(140deg, #3c5c4f, #789181);
    flex-direction: column;
    justify-content: space-between;
}

.gc-option:nth-child(3n+2) .gc-option__visual { background: linear-gradient(140deg, #9c7567, #d1aa9d); }
.gc-option:nth-child(3n+3) .gc-option__visual { background: linear-gradient(140deg, #615744, #a18b63); }
.gc-option__visual::after { content: ""; position: absolute; width: 150px; height: 150px; right: -40px; bottom: -75px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; box-shadow: 0 0 0 22px rgba(255,255,255,.04); }
.gc-option__brand { font-size: 10px; font-weight: 700; letter-spacing: .22em; }
.gc-option__mark { position: absolute; top: 17px; right: 20px; color: #ead7a9; font-size: 20px; }
.gc-option__amount { position: relative; z-index: 1; font-family: Georgia, serif; font-size: 26px; }
.gc-option__content { display: block; min-height: 96px; padding: 20px 22px; }
.gc-option__content strong, .gc-option__content small { display: block; }
.gc-option__content strong { overflow: hidden; margin-bottom: 5px; color: var(--gc-ink); font-family: Georgia, serif; font-size: 18px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.gc-option__content small { overflow: hidden; color: var(--gc-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.gc-option__check { position: absolute; right: 14px; bottom: 14px; display: grid; width: 25px; height: 25px; color: transparent; background: #f1eee8; border-radius: 50%; place-items: center; }
.gc-option.is-selected .gc-option__check { color: #fff; background: var(--gc-forest); }

.gc-checkout { position: sticky; top: 24px; padding: 34px; background: var(--gc-paper); border: 1px solid rgba(36,53,47,.1); border-radius: 22px; box-shadow: 0 20px 55px rgba(50, 63, 56, .1); }
.gc-checkout__summary { display: grid; grid-template-columns: 1fr auto; margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--gc-line); }
.gc-checkout__summary span { grid-column: 1 / -1; margin-bottom: 4px; color: var(--gc-muted); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.gc-checkout__summary strong { overflow: hidden; padding-right: 14px; color: var(--gc-ink); font-family: Georgia, serif; font-size: 19px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.gc-checkout__summary b { color: var(--gc-forest); font-size: 17px; }

.gc-custom-amount { margin: -6px 0 26px; padding: 20px; background: #f2f5f0; border-radius: 14px; }
.gc-custom-amount > label { display: block; margin-bottom: 8px; color: var(--gc-ink); font-size: 12px; font-weight: 700; }
.gc-custom-amount > small { display: block; margin-top: 7px; color: var(--gc-muted); font-size: 11px; }
.gc-money-input { display: flex; align-items: center; background: #fff; border: 1px solid var(--gc-line); border-radius: 10px; }
.gc-money-input span { padding-left: 13px; color: var(--gc-gold); font-family: Georgia, serif; font-size: 22px; }
.gc-money-input input { width: 100%; height: 44px; padding: 8px 12px 8px 6px; color: var(--gc-ink); background: transparent; border: 0 !important; outline: 0; font-size: 18px; }

.gc-form-section { display: grid; gap: 15px; }
.gc-form-title { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1px; }
.gc-form-title span { color: var(--gc-ink); font-family: Georgia, serif; font-size: 22px; }
.gc-form-title small { color: var(--gc-muted); font-size: 11px; }
.gc-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gc-field { position: relative; display: block; margin: 0; }
.gc-field > span { display: block; margin-bottom: 6px; color: #536159; font-size: 11px; font-weight: 700; }
.gc-field input, .gc-field textarea { display: block; width: 100%; margin: 0; padding: 11px 13px; color: var(--gc-ink); background: #fbfaf7; border: 1px solid var(--gc-line); border-radius: 9px; box-shadow: none; font: inherit; font-size: 14px; outline: none; transition: border-color .2s, box-shadow .2s; }
.gc-field input { height: 44px; }
.gc-field textarea { min-height: 86px; resize: vertical; }
.gc-field input:focus, .gc-field textarea:focus { border-color: var(--gc-forest); box-shadow: 0 0 0 3px rgba(64,95,82,.09); }
.gc-field > small { position: absolute; right: 9px; bottom: 7px; color: #89938d; font-size: 9px; }

.gc-gift-toggle { display: flex; align-items: center; gap: 12px; margin: 25px 0; padding: 15px; background: #f7f3ed; border-radius: 12px; cursor: pointer; }
.gc-gift-toggle input { position: absolute; opacity: 0; }
.gc-gift-toggle__control { position: relative; width: 40px; height: 23px; background: #c9cec9; border-radius: 20px; transition: background .2s; flex: 0 0 auto; }
.gc-gift-toggle__control::after { content: ""; position: absolute; top: 3px; left: 3px; width: 17px; height: 17px; background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.2); transition: transform .2s; }
.gc-gift-toggle input:checked + .gc-gift-toggle__control { background: var(--gc-forest); }
.gc-gift-toggle input:checked + .gc-gift-toggle__control::after { transform: translateX(17px); }
.gc-gift-toggle strong, .gc-gift-toggle small { display: block; }
.gc-gift-toggle strong { color: var(--gc-ink); font-size: 13px; }
.gc-gift-toggle small { color: var(--gc-muted); font-size: 10px; }
.gc-recipient { margin-top: 3px; padding-top: 23px; border-top: 1px solid var(--gc-line); }

.gc-form-message { margin-top: 18px; padding: 12px 14px; color: #8a3d37; background: #faece8; border: 1px solid #ebc8c0; border-radius: 9px; font-size: 12px; }
.gc-submit { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 52px; margin-top: 25px; padding: 0 20px; color: #fff; background: var(--gc-forest); border: 0; border-radius: 10px; box-shadow: 0 8px 18px rgba(64,95,82,.2); cursor: pointer; font-size: 13px; font-weight: 700; transition: background .2s, transform .2s; }
.gc-submit:hover { background: var(--gc-forest-dark); transform: translateY(-1px); }
.gc-submit:disabled { cursor: wait; opacity: .7; transform: none; }
.gc-submit.is-loading i { animation: gcPulse .8s infinite alternate; }
.gc-checkout__fineprint { margin: 12px 15px 0; color: #7d8982; font-size: 10px; line-height: 1.5; text-align: center; }

.gc-notice { display: flex; align-items: center; gap: 12px; max-width: 720px; padding: 20px; border-radius: 12px; }
.gc-notice--error { color: #7e413b; background: #faebe7; border: 1px solid #e8c7bf; }

.gc-how-it-works { padding: 90px max(6vw, calc((100vw - 1268px) / 2)); color: #f8f4ec; background: var(--gc-forest-dark); }
.gc-section-heading--light h2 { color: #fffdf7; }
.gc-section-heading--light p { color: #b9c7c0; }
.gc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.16); }
.gc-steps article { position: relative; min-height: 210px; padding: 38px; background: var(--gc-forest-dark); }
.gc-steps b { display: block; margin-bottom: 34px; color: #d4bd8e; font-family: Georgia, serif; font-size: 13px; }
.gc-steps h3 { margin: 0 0 9px; color: #fffdf7; font-family: Georgia, serif; font-size: 24px; font-weight: 400; }
.gc-steps p { max-width: 280px; margin: 0; color: #bdc9c3; font-size: 13px; }

[hidden] { display: none !important; }
@keyframes gcPulse { from { transform: translateX(0); } to { transform: translateX(5px); } }

@media (max-width: 1050px) {
    .gc-hero { grid-template-columns: 1fr 1fr; }
    .gc-hero__copy { padding-left: 5vw; padding-right: 3vw; }
    .gc-purchase-layout { grid-template-columns: 1fr; }
    .gc-checkout { position: static; max-width: 720px; width: 100%; margin: 0 auto; }
}

@media (max-width: 760px) {
    .gc-hero { display: block; min-height: 0; }
    .gc-hero__copy { padding: 72px 7vw 45px; }
    .gc-hero__art { min-height: 360px; padding-bottom: 50px; }
    .gc-orbit--one { width: 340px; height: 340px; }
    .gc-orbit--two { width: 260px; height: 260px; }
    .gc-preview-card { width: min(82%, 410px); }
    .gc-shop { padding: 70px 5vw 80px; }
    .gc-catalog { grid-template-columns: 1fr 1fr; }
    .gc-checkout { padding: 24px 20px; }
    .gc-how-it-works { padding: 70px 7vw; }
    .gc-steps { grid-template-columns: 1fr; }
    .gc-steps article { min-height: 0; }
}

@media (max-width: 520px) {
    .gc-hero h1 { font-size: 46px; }
    .gc-hero__copy > p { font-size: 16px; }
    .gc-trust { display: grid; gap: 10px; }
    .gc-catalog { grid-template-columns: 1fr; }
    .gc-option { display: grid; grid-template-columns: 130px 1fr; }
    .gc-option__visual { min-height: 112px; padding: 16px; }
    .gc-option__amount { font-size: 19px; }
    .gc-option__content { min-width: 0; min-height: 112px; padding: 25px 35px 18px 16px; }
    .gc-field-row { grid-template-columns: 1fr; }
    .gc-preview-card { padding: 23px; }
}

/* Gift card payment */
body.page-payment .footer-bottom-wap, body.page-complete .footer-bottom-wap { display: none; }
.gc-payment-page, .gc-payment-page *, .gc-complete-page, .gc-complete-page * { box-sizing: border-box; }
.gc-payment-page, .gc-complete-page { min-height: 760px; padding: 105px 5vw 110px; color: var(--gc-ink); background: linear-gradient(140deg, #f7f0e7, #eef2ec); font-size: 16px; line-height: 1.6; text-align: left; }
.gc-payment-shell { width: min(100%, 1180px); margin: 0 auto; }
.gc-back-link { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 36px; color: var(--gc-forest); font-size: 14px; font-weight: 700; }
.gc-payment-heading { max-width: 720px; margin-bottom: 38px; }
.gc-payment-heading > span, .gc-secure-label, .gc-order-summary__eyebrow { color: var(--gc-gold); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.gc-payment-heading h1 { margin: 7px 0 12px; color: var(--gc-ink); font-family: Georgia, serif; font-size: clamp(38px, 4vw, 55px); font-weight: 400; line-height: 1.1; text-transform: none; }
.gc-payment-heading p { margin: 0; color: var(--gc-muted); font-size: 17px; line-height: 1.7; }
.gc-payment-grid { display: grid; grid-template-columns: minmax(0, 720px) minmax(320px, 1fr); gap: 44px; align-items: start; }
.gc-payment-form-card, .gc-order-summary { padding: 42px 46px; background: var(--gc-paper); border: 1px solid var(--gc-line); border-radius: 20px; box-shadow: 0 20px 55px rgba(50,63,56,.08); }
.gc-payment-form-card h2 { margin: 9px 0 31px; color: var(--gc-ink); font-family: Georgia, serif; font-size: 32px; font-weight: 400; line-height: 1.2; text-transform: none; }
.gc-payment-form-card form, .gc-pay-field, .gc-pay-field > span { text-align: left; }
.gc-secure-label i { margin-right: 6px; }
.gc-pay-field { display: block; min-width: 0; margin: 0 0 22px; }
.gc-pay-field > span { display: block; margin-bottom: 8px; color: #46564e; font-size: 14px; font-weight: 700; }
.gc-pay-field input, .gc-pay-field select { width: 100%; height: 56px; margin: 0; padding: 12px 15px; color: var(--gc-ink); background: #fbfaf7; border: 1px solid var(--gc-line); border-radius: 10px; box-shadow: none; font: inherit; font-size: 16px; outline: none; }
.gc-pay-field input::placeholder { color: #9aa39e; opacity: 1; }
.gc-pay-field input:focus, .gc-pay-field select:focus { border-color: var(--gc-forest); box-shadow: 0 0 0 3px rgba(64,95,82,.09); }
.gc-pay-row { display: grid; grid-template-columns: minmax(260px, 1.35fr) minmax(130px, .65fr); gap: 18px; }
.gc-expiry-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gc-card-number-wrap { position: relative; }
.gc-card-number-wrap input { padding-right: 48px; letter-spacing: .04em; }
.gc-card-number-wrap i { position: absolute; top: 19px; right: 17px; color: var(--gc-sage); font-size: 18px; }
.gc-payment-submit { min-height: 58px; margin-top: 7px; font-size: 15px; }
.gc-payment-privacy { margin: 17px 0 0; color: #6f7c75; font-size: 12px; line-height: 1.55; text-align: center; }
.gc-payment-privacy i { margin-right: 5px; color: var(--gc-forest); }
.gc-processing-message { display: flex; gap: 11px; margin: -9px 0 24px; padding: 15px; color: #6f5b31; background: #fbf4df; border: 1px solid #ead8a6; border-radius: 9px; font-size: 13px; }
.gc-security-setup-message { color: #7a3d3d; background: #fff2f1; border-color: #efc9c5; }
.gc-payment-notice { margin: 0 auto; }
.gc-order-summary { position: sticky; top: 24px; padding: 34px; }
.gc-order-mini-card { display: flex; min-height: 188px; margin: 20px 0 28px; padding: 26px; color: #fff; background: linear-gradient(140deg, #345247, #718b7d); border-radius: 15px; box-shadow: 0 15px 28px rgba(41,68,58,.19); flex-direction: column; }
.gc-order-mini-card > span { font-size: 11px; font-weight: 700; letter-spacing: .2em; }
.gc-order-mini-card b { margin-top: auto; font-family: Georgia, serif; font-size: 31px; font-weight: 400; }
.gc-order-mini-card small { color: #e0e7e3; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.gc-summary-line { display: flex; gap: 16px; justify-content: space-between; padding: 16px 0; color: var(--gc-muted); border-bottom: 1px solid var(--gc-line); font-size: 14px; line-height: 1.45; }
.gc-summary-line span { min-width: 0; overflow-wrap: anywhere; }
.gc-summary-line b { color: var(--gc-ink); }
.gc-summary-total { display: flex; align-items: baseline; justify-content: space-between; padding: 24px 0 14px; }
.gc-summary-total span { font-size: 16px; font-weight: 700; }
.gc-summary-total strong { color: var(--gc-forest); font-family: Georgia, serif; font-size: 33px; font-weight: 400; }
.gc-order-summary > p { margin: 0; overflow-wrap: anywhere; color: #737f79; font-size: 11px; }

.gc-complete-page { display: grid; place-items: center; }
.gc-complete-card { width: min(100%, 680px); padding: 65px 55px; text-align: center; background: var(--gc-paper); border: 1px solid var(--gc-line); border-radius: 24px; box-shadow: 0 24px 60px rgba(50,63,56,.1); }
.gc-complete-icon { display: grid; width: 68px; height: 68px; margin: 0 auto 28px; color: #fff; background: var(--gc-forest); border-radius: 50%; place-items: center; font-size: 23px; }
.gc-complete-icon--waiting { background: var(--gc-gold); }
.gc-complete-card .gc-eyebrow { margin-bottom: 17px; }
.gc-complete-card .gc-eyebrow::before { display: none; }
.gc-complete-card h1 { margin: 0 0 17px; color: var(--gc-ink); font-family: Georgia, serif; font-size: clamp(36px, 4vw, 52px); font-weight: 400; line-height: 1.1; text-transform: none; }
.gc-complete-card > p { max-width: 500px; margin: 0 auto; color: var(--gc-muted); font-size: 14px; }
.gc-complete-order { margin: 27px 0; padding: 13px; color: var(--gc-muted); background: #f5f2ec; border-radius: 9px; font-size: 11px; }
.gc-complete-action { display: inline-flex; min-height: 46px; padding: 0 25px; align-items: center; color: #fff; background: var(--gc-forest); border-radius: 9px; font-size: 12px; font-weight: 700; }

@media (max-width: 1150px) {
    .gc-payment-grid { grid-template-columns: 1fr; }
    .gc-order-summary { position: static; }
    .gc-order-mini-card { max-width: 420px; }
}

@media (max-width: 520px) {
    .gc-payment-page, .gc-complete-page { padding: 150px 4vw 72px; }
    .gc-back-link { margin-bottom: 28px; }
    .gc-payment-heading { margin-bottom: 30px; }
    .gc-payment-heading h1 { font-size: 40px; }
    .gc-payment-heading p { font-size: 15px; }
    .gc-payment-form-card, .gc-order-summary { padding: 28px 21px; }
    .gc-pay-row { grid-template-columns: 1fr; }
    .gc-pay-field > span { font-size: 13px; }
    .gc-pay-field input, .gc-pay-field select { height: 54px; font-size: 16px; }
    .gc-complete-card { padding: 50px 24px; }
}
