/* =========================================================
   GENTLELAND REUSABLE BUTTON BLOCKS
   Native FluentCart selectors are emitted as immediate inline CSS
   from the settings class, so no frontend JavaScript is required.
   ========================================================= */

.gentleland-ivory-button-block {
    display: flex;
    width: 100%;
    overflow: visible;
}

.gentleland-ivory-button-block--left { justify-content: flex-start; }
.gentleland-ivory-button-block--center { justify-content: center; }
.gentleland-ivory-button-block--right { justify-content: flex-end; }

/* A page-content block needs a full-width alignment canvas. Inside a header
   or navigation row that same canvas becomes an oversized flex item, so let
   it shrink-wrap the actual button there. */
:is(header, nav, .wp-block-navigation, .gkit-nav-menu, .gkit-nav-menu-wrapper) .gentleland-ivory-button-block {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    justify-content: flex-start !important;
}

/* Gutenberg/GutenKit wraps an editor block in its own flex item. The button's
   normal full-width alignment canvas would make that wrapper occupy the rest
   of a navbar row, leaving a large invisible gap beside the visible button. */
:is(.editor-styles-wrapper, .block-editor-block-list__layout) .gentleland-ivory-button-block--editor {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
    vertical-align: middle !important;
}

:is(.editor-styles-wrapper, .block-editor-block-list__layout) .block-editor-block-list__block:has(> .gentleland-ivory-button-block--editor) {
    flex: 0 0 auto !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Once the wrapper shrink-wraps, a percentage width on its child creates a
   circular size calculation and the browser can collapse the button to its
   text. Use the editor's configured pixel width in both contexts and cap it
   independently against the viewport for responsive safety. */
:is(header, nav, .wp-block-navigation, .gkit-nav-menu, .gkit-nav-menu-wrapper) .gentleland-ivory-button-block > .gentleland-ivory-action,
:is(.editor-styles-wrapper, .block-editor-block-list__layout) .gentleland-ivory-button-block--editor > .gentleland-ivory-action {
    flex: 0 0 auto !important;
    width: var(--gia-width, 430px) !important;
    max-width: calc(100vw - 32px) !important;
}

.gentleland-ivory-button-block > .gentleland-ivory-action {
    flex: 0 1 var(--gia-width, 430px);
    width: min(var(--gia-width, 430px), 100%) !important;
}


/* =========================================================
   SHARED FOUNDATION
   ========================================================= */

.gentleland-ivory-action {
    position: relative !important;
    isolation: isolate !important;
    display: grid !important;
    place-items: center !important;
    box-sizing: border-box !important;
    width: min(var(--gia-width, 430px), 100%) !important;
    max-width: var(--gia-width, 430px) !important;
    height: var(--gia-height, 96px) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: var(--gia-padding-y, 0px) var(--gia-padding-x, 20px) !important;
    font-family: var(--gia-font, Georgia, serif) !important;
    font-size: var(--gia-size, 18px) !important;
    font-style: var(--gia-font-style, normal) !important;
    font-weight: var(--gia-weight, 700) !important;
    line-height: 1.1 !important;
    letter-spacing: var(--gia-letter-spacing, .2px) !important;
    text-align: center !important;
    text-decoration: var(--gia-decoration, none) !important;
    text-transform: var(--gia-transform, none) !important;
    border: 2px solid transparent !important;
    border-radius: 9px !important;
    outline: 0;
    overflow: visible !important;
    cursor: pointer !important;
    filter: none !important;
    transform: translateY(0) scale(1) !important;
    transition: transform var(--gia-hover-duration, 240ms) cubic-bezier(.2, .75, .25, 1), filter var(--gia-hover-duration, 240ms) ease, box-shadow var(--gia-hover-duration, 240ms) ease, background var(--gia-hover-duration, 240ms) ease !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -webkit-tap-highlight-color: transparent;
}

.gentleland-ivory-action__label {
    position: relative !important;
    z-index: 3 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-decoration: inherit !important;
    text-shadow: var(--gia-text-shadow, inherit) !important;
    border: 0 !important;
    background: transparent !important;
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .58)) !important;
    pointer-events: none !important;
    transform: scale(1) !important;
    transition: color 280ms ease, filter 280ms ease, transform 280ms ease !important;
}


/* =========================================================
   RAISED IVORY + GOLD
   ========================================================= */

.gentleland-ivory-action--raised {
    color: var(--gia-color, #4a0d17) !important;
    font-size: var(--gia-size, 20px) !important;
    letter-spacing: var(--gia-letter-spacing, .4px) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(255, 248, 229, .70), 0 2px 2px rgba(72, 45, 27, .30)) !important;
    background: linear-gradient(to bottom, #fff2cf 0%, #f7dfad 5%, #e4c58f 11%, #cbae78 18%, #a98d61 30%, #8e704b 55%, #705337 78%, #4d3827 100%) padding-box, linear-gradient(to bottom, #fff2bd 0%, #efd283 14%, #d7aa53 38%, #c18a38 68%, #a96e29 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(190, 135, 55, .88), 0 4px 9px rgba(72, 45, 27, .18), 0 1px 2px rgba(72, 45, 27, .20) !important;
}

.gentleland-ivory-action--raised::before,
.gentleland-ivory-action--teal::before {
    content: "" !important;
    position: absolute !important;
    inset: 4px !important;
    z-index: 0 !important;
    display: block !important;
    border: 0 !important;
    border-radius: 5px !important;
    pointer-events: none !important;
    transform: translateY(0) !important;
    transition: transform 240ms cubic-bezier(.2, .75, .25, 1), box-shadow 280ms ease, background 190ms ease !important;
}

.gentleland-ivory-action--raised::before {
    background: radial-gradient(ellipse at 50% 45%, rgba(255, 240, 206, .38) 0%, rgba(244, 221, 186, .22) 28%, rgba(216, 191, 152, .05) 55%, rgba(185, 155, 112, .06) 78%, rgba(156, 122, 83, .10) 92%, rgba(128, 96, 68, .13) 100%), radial-gradient(ellipse at 50% 0%, rgba(255, 248, 229, .19) 0%, rgba(255, 242, 208, .05) 52%, rgba(255, 242, 208, 0) 100%), linear-gradient(to bottom, #e8d5af 0%, #dfcaa4 18%, #d2bb94 48%, #d0b78f 76%, #c8aa7d 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 251, 232, .98), inset 0 2px 2px rgba(255, 241, 202, .44), inset 0 -1px 0 rgba(152, 117, 78, .58), inset 0 -3px 3px rgba(110, 80, 53, .24), 0 1px 1px rgba(15, 7, 4, .28) !important;
}

.gentleland-ivory-action--raised::after,
.gentleland-ivory-action--teal::after {
    content: "" !important;
    position: absolute !important;
    inset: 5px !important;
    z-index: 1 !important;
    display: block !important;
    border-radius: 4px !important;
    background: transparent !important;
    pointer-events: none !important;
}

.gentleland-ivory-action--raised::after {
    border: 1px solid rgba(255, 241, 202, .56) !important;
    box-shadow: inset 0 -1px 0 rgba(110, 80, 53, .34) !important;
}


/* =========================================================
   RAISED TEAL + GOLD
   Same depth as the ivory bevel, using CTA 01's teal family.
   ========================================================= */

.gentleland-ivory-action--teal {
    color: var(--gia-color, #fff7df) !important;
    font-size: var(--gia-size, 20px) !important;
    letter-spacing: var(--gia-letter-spacing, .4px) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(4, 35, 35, .85), 0 2px 2px rgba(1, 17, 18, .42)) !important;
    background: linear-gradient(to bottom, #a1e5d8 0%, #76d2c2 5%, #46b3a4 11%, #248b81 18%, #12665f 30%, #0b514d 55%, #073f3d 78%, #042c2e 100%) padding-box, linear-gradient(to bottom, #fff2bd 0%, #efd283 14%, #d7aa53 38%, #c18a38 68%, #a96e29 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(190, 135, 55, .88), 0 4px 9px rgba(28, 45, 40, .25), 0 1px 2px rgba(18, 45, 42, .30) !important;
}

.gentleland-ivory-action--teal::before {
    background: radial-gradient(ellipse at 50% 45%, rgba(119, 201, 189, .17) 0%, rgba(84, 173, 164, .10) 30%, rgba(46, 127, 121, .025) 58%, rgba(7, 63, 64, .08) 80%, rgba(4, 47, 50, .16) 92%, rgba(2, 39, 42, .23) 100%), radial-gradient(ellipse at 50% 0%, rgba(126, 212, 197, .12) 0%, rgba(126, 212, 197, .025) 52%, rgba(126, 212, 197, 0) 100%), linear-gradient(to bottom, #23867d 0%, #207d75 16%, #176d67 45%, #115d59 72%, #0b4e4d 100%) !important;
    box-shadow: inset 0 1px 0 rgba(189, 244, 232, .75), inset 0 2px 2px rgba(126, 212, 197, .24), inset 0 -1px 0 rgba(2, 39, 42, .62), inset 0 -3px 3px rgba(2, 28, 30, .30), 0 1px 1px rgba(1, 14, 15, .36) !important;
}

.gentleland-ivory-action--teal::after {
    border: 1px solid rgba(161, 229, 216, .65) !important;
    box-shadow: inset 0 -1px 0 rgba(2, 39, 42, .62) !important;
}


/* =========================================================
   CLEAN IVORY + GOLD
   ========================================================= */

.gentleland-ivory-action--flat {
    color: var(--gia-color, #543a2d) !important;
    font-size: var(--gia-size, 18px) !important;
    letter-spacing: var(--gia-letter-spacing, .2px) !important;
    text-shadow: var(--gia-text-shadow, none) !important;
    background: linear-gradient(to bottom, #fffaf0 0%, #fbf4e8 24%, #f6ecdd 58%, #efe1ce 100%) padding-box, linear-gradient(to bottom, #fff2bd 0%, #efd283 14%, #d7aa53 38%, #c18a38 68%, #a96e29 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(190, 135, 55, .88), 0 4px 9px rgba(72, 45, 27, .18), 0 1px 2px rgba(72, 45, 27, .20), inset 0 1px 0 rgba(255, 255, 255, .92), inset 0 -1px 0 rgba(165, 118, 66, .12) !important;
}

.gentleland-ivory-action--flat::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: block !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: radial-gradient(circle at 50% 18%, rgba(255, 255, 255, .72) 0%, rgba(255, 255, 255, .22) 40%, transparent 72%) !important;
    opacity: .8 !important;
    pointer-events: none !important;
    transition: opacity 280ms ease !important;
}

.gentleland-ivory-action--flat::after {
    content: "" !important;
    position: absolute !important;
    inset: 1px !important;
    z-index: 1 !important;
    display: block !important;
    border: 1px solid rgba(255, 252, 239, .72) !important;
    border-radius: 6px !important;
    box-shadow: inset 0 -1px 0 rgba(154, 105, 57, .10) !important;
    background: transparent !important;
    opacity: .9 !important;
    pointer-events: none !important;
    transition: border-color 280ms ease, box-shadow 280ms ease !important;
}


/* =========================================================
   CLEAN IVORY VARIATIONS
   ========================================================= */

.gentleland-ivory-action--primary {
    color: var(--gia-color, #4a0d17) !important;
    font-size: var(--gia-size, 19px) !important;
    letter-spacing: var(--gia-letter-spacing, .28px) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(255, 255, 255, .82)) !important;
    background: linear-gradient(to bottom, #fffef8 0%, #fff7e8 42%, #f3e3c9 100%) padding-box, linear-gradient(to bottom, #fff4bd 0%, #e8c260 42%, #b87528 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(190, 135, 55, .90), 0 5px 12px rgba(72, 45, 27, .17), inset 0 1px 0 rgba(255, 255, 255, .98) !important;
}

.gentleland-ivory-action--warm {
    color: var(--gia-color, #5b1822) !important;
    font-size: var(--gia-size, 19px) !important;
    letter-spacing: var(--gia-letter-spacing, .3px) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(255, 255, 255, .72)) !important;
    background: linear-gradient(to bottom, #fff5e4 0%, #f7e3c6 52%, #e8cba5 100%) padding-box, linear-gradient(to bottom, #fff0ad 0%, #dda84a 50%, #a86625 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(181, 119, 39, .88), 0 5px 12px rgba(92, 52, 25, .18), inset 0 1px 0 rgba(255, 255, 255, .88) !important;
}

.gentleland-ivory-action--soft {
    color: var(--gia-color, #5a463c) !important;
    font-size: var(--gia-size, 18px) !important;
    letter-spacing: var(--gia-letter-spacing, .18px) !important;
    text-shadow: var(--gia-text-shadow, none) !important;
    background: linear-gradient(to bottom, #fffdfa 0%, #faf4eb 55%, #f3e9dc 100%) padding-box, linear-gradient(to bottom, #f4ddb0 0%, #d9b370 55%, #ba8442 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(190, 151, 91, .70), 0 3px 8px rgba(72, 45, 27, .11), inset 0 1px 0 rgba(255, 255, 255, .96) !important;
}

.gentleland-ivory-action--primary::before,
.gentleland-ivory-action--warm::before,
.gentleland-ivory-action--soft::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: block !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: radial-gradient(circle at 50% 16%, rgba(255, 255, 255, .75) 0%, rgba(255, 255, 255, .20) 42%, transparent 72%) !important;
    opacity: .82 !important;
    pointer-events: none !important;
    transition: opacity var(--gia-hover-duration, 240ms) ease !important;
}

.gentleland-ivory-action--primary::after,
.gentleland-ivory-action--warm::after,
.gentleland-ivory-action--soft::after {
    content: "" !important;
    position: absolute !important;
    inset: 1px !important;
    z-index: 1 !important;
    display: block !important;
    border: 1px solid rgba(255, 252, 239, .76) !important;
    border-radius: 6px !important;
    background: transparent !important;
    box-shadow: inset 0 -1px 0 rgba(154, 105, 57, .11) !important;
    pointer-events: none !important;
}


/* =========================================================
   HIGH-CONTRAST PRIMARY ACTIONS
   These deliberately break away from pale page surfaces while retaining
   Gentleland's ivory type, gold edge and restrained material depth.
   ========================================================= */

.gentleland-ivory-action--burgundy-primary,
.gentleland-ivory-action--maroon-primary,
.gentleland-ivory-action--jewel-primary,
.gentleland-ivory-action--gilded-primary {
    font-size: var(--gia-size, 19px) !important;
    letter-spacing: var(--gia-letter-spacing, .34px) !important;
}

.gentleland-ivory-action--burgundy-primary {
    color: var(--gia-color, #fff8df) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(45, 5, 13, .92), 0 2px 4px rgba(24, 2, 7, .46)) !important;
    background: linear-gradient(135deg, #9d3d50 0%, #7d2438 35%, #5f1426 68%, #430b18 100%) padding-box, linear-gradient(to bottom, #fff0a8 0%, #e0ad3d 45%, #9d591c 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(190, 128, 35, .96), 0 8px 18px rgba(72, 14, 28, .28), 0 2px 4px rgba(58, 10, 20, .26), inset 0 1px 0 rgba(255, 184, 184, .24) !important;
}

.gentleland-ivory-action--maroon-primary {
    color: var(--gia-color, #fff7df) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(35, 8, 12, .96), 0 2px 4px rgba(19, 4, 7, .54)) !important;
    background: linear-gradient(135deg, #6a3a3f 0%, #72434a 36%, #76474e 70%, #704047 100%) padding-box, linear-gradient(to bottom, #f8e6a0 0%, #cf9a36 46%, #89501f 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(171, 111, 33, .98), 0 8px 19px rgba(48, 17, 23, .34), 0 2px 4px rgba(38, 12, 18, .30), inset 0 1px 0 rgba(238, 174, 166, .18) !important;
}

.gentleland-ivory-action--jewel-primary {
    color: var(--gia-color, #fff9df) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(1, 35, 36, .96), 0 2px 4px rgba(0, 21, 23, .48)) !important;
    background: linear-gradient(135deg, #2d9a8e 0%, #18786f 34%, #0d5b57 68%, #063d40 100%) padding-box, linear-gradient(to bottom, #fff2ad 0%, #dfae43 48%, #9b5d20 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(184, 124, 37, .96), 0 8px 18px rgba(7, 57, 55, .28), 0 2px 4px rgba(3, 39, 39, .28), inset 0 1px 0 rgba(191, 246, 233, .24) !important;
}

.gentleland-ivory-action--gilded-primary {
    color: var(--gia-color, #52101d) !important;
    text-shadow: var(--gia-text-shadow, 0 1px 0 rgba(255, 248, 205, .86), 0 2px 2px rgba(98, 50, 12, .24)) !important;
    background: linear-gradient(135deg, #fff0a4 0%, #ecc35d 33%, #d29a30 68%, #ae681f 100%) padding-box, linear-gradient(to bottom, #fff9d5 0%, #e1ad3d 48%, #813d15 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(157, 87, 24, .98), 0 8px 20px rgba(105, 58, 17, .27), 0 2px 4px rgba(80, 39, 12, .24), inset 0 1px 0 rgba(255, 255, 225, .72) !important;
}

.gentleland-ivory-action--burgundy-primary::before,
.gentleland-ivory-action--maroon-primary::before,
.gentleland-ivory-action--jewel-primary::before,
.gentleland-ivory-action--gilded-primary::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: block !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: radial-gradient(circle at 28% 8%, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, .10) 27%, transparent 54%), linear-gradient(105deg, transparent 22%, rgba(255, 243, 190, .14) 48%, transparent 70%) !important;
    opacity: .82 !important;
    pointer-events: none !important;
    transition: opacity var(--gia-hover-duration, 240ms) ease, transform var(--gia-hover-duration, 240ms) ease !important;
}

.gentleland-ivory-action--burgundy-primary::after,
.gentleland-ivory-action--maroon-primary::after,
.gentleland-ivory-action--jewel-primary::after,
.gentleland-ivory-action--gilded-primary::after {
    content: "" !important;
    position: absolute !important;
    inset: 3px !important;
    z-index: 1 !important;
    display: block !important;
    border: 1px solid rgba(255, 225, 139, .62) !important;
    border-radius: 5px !important;
    background: transparent !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 235, .20), inset 0 -1px 0 rgba(70, 25, 10, .36) !important;
    pointer-events: none !important;
}


/* =========================================================
   INTERACTION
   ========================================================= */

.gentleland-ivory-action:hover {
    box-shadow: 0 0 0 1px rgba(238, 204, 126, .96), 0 6px 12px rgba(72, 45, 27, .20), 0 2px 3px rgba(72, 45, 27, .18) !important;
    outline: var(--gia-outline-width, 1px) solid var(--gia-outline-color, #fff6ca) !important;
    outline-offset: var(--gia-outline-offset, 2px) !important;
    filter: brightness(var(--gia-hover-brightness, 1.03)) drop-shadow(0 0 1px rgba(255, 250, 222, .95)) drop-shadow(0 0 var(--gia-outline-glow, 7px) var(--gia-outline-color, #fff6ca)) !important;
    transform: translateY(var(--gia-hover-lift, -1px)) scale(var(--gia-hover-scale, 1.015)) !important;
}

.gentleland-ivory-action--raised:hover {
    color: var(--gia-color, #3a0810) !important;
    background: linear-gradient(to bottom, #fff6d8 0%, #fbe6b9 5%, #e9cb96 11%, #d0b17c 18%, #ad9064 30%, #92734d 55%, #74563a 78%, #503a29 100%) padding-box, linear-gradient(to bottom, #fff6ca 0%, #f4d98c 14%, #ddb35e 38%, #c99543 68%, #b77c32 100%) border-box !important;
}

.gentleland-ivory-action--raised:hover::before {
    background: radial-gradient(ellipse at 50% 44%, rgba(255, 249, 223, .32) 0%, rgba(255, 232, 187, .19) 30%, rgba(232, 189, 121, .06) 66%, rgba(232, 189, 121, 0) 100%), radial-gradient(ellipse at 50% 45%, rgba(255, 240, 206, .38) 0%, rgba(244, 221, 186, .22) 28%, rgba(216, 191, 152, .05) 55%, rgba(185, 155, 112, .06) 78%, rgba(156, 122, 83, .10) 92%, rgba(128, 96, 68, .13) 100%), linear-gradient(to bottom, #e8d5af 0%, #dfcaa4 18%, #d2bb94 48%, #d0b78f 76%, #c8aa7d 100%) !important;
}

.gentleland-ivory-action--teal:hover {
    color: var(--gia-color, #fffbea) !important;
    background: linear-gradient(to bottom, #b4eee3 0%, #87dccd 5%, #55bcae 11%, #2d968b 18%, #167068 30%, #0d5954 55%, #094744 78%, #053235 100%) padding-box, linear-gradient(to bottom, #fff6ca 0%, #f4d98c 14%, #ddb35e 38%, #c99543 68%, #b77c32 100%) border-box !important;
}

.gentleland-ivory-action--teal:hover::before {
    background: radial-gradient(ellipse at 50% 44%, rgba(181, 240, 228, .25) 0%, rgba(134, 219, 205, .15) 30%, rgba(85, 181, 168, .05) 66%, rgba(85, 181, 168, 0) 100%), radial-gradient(ellipse at 50% 45%, rgba(119, 201, 189, .17) 0%, rgba(84, 173, 164, .10) 30%, rgba(46, 127, 121, .025) 58%, rgba(7, 63, 64, .08) 80%, rgba(4, 47, 50, .16) 92%, rgba(2, 39, 42, .23) 100%), linear-gradient(to bottom, #23867d 0%, #207d75 16%, #176d67 45%, #115d59 72%, #0b4e4d 100%) !important;
}

.gentleland-ivory-action--flat:hover {
    color: var(--gia-color, #493026) !important;
    background: linear-gradient(to bottom, #fffdf7 0%, #fdf7ed 28%, #f8efe2 62%, #f2e4d2 100%) padding-box, linear-gradient(to bottom, #fff6ca 0%, #f4d98c 14%, #ddb35e 38%, #c99543 68%, #b77c32 100%) border-box !important;
}

.gentleland-ivory-action--flat:hover::before { opacity: 1 !important; }
.gentleland-ivory-action--flat:hover::after { border-color: rgba(255, 255, 244, .92) !important; box-shadow: inset 0 0 4px rgba(255, 247, 214, .34) !important; }
.gentleland-ivory-action--primary:hover {
    color: var(--gia-color, #39070f) !important;
    background: linear-gradient(to bottom, #fffefa 0%, #fff9eb 42%, #f7e7ca 100%) padding-box, linear-gradient(to bottom, #fff8cc 0%, #efd071 42%, #c88431 100%) border-box !important;
}
.gentleland-ivory-action--warm:hover {
    color: var(--gia-color, #470d17) !important;
    background: linear-gradient(to bottom, #fff9eb 0%, #fbe9cd 52%, #efd2ab 100%) padding-box, linear-gradient(to bottom, #fff5bf 0%, #e8b95b 50%, #b9762d 100%) border-box !important;
}
.gentleland-ivory-action--soft:hover {
    color: var(--gia-color, #49352c) !important;
    background: linear-gradient(to bottom, #fff 0%, #fcf7ee 55%, #f6ecdf 100%) padding-box, linear-gradient(to bottom, #fae8bf 0%, #e2bf7a 55%, #c48d48 100%) border-box !important;
}
.gentleland-ivory-action--burgundy-primary:hover {
    color: var(--gia-color, #fffceb) !important;
    background: linear-gradient(135deg, #b84c60 0%, #922d43 35%, #701a2f 68%, #500d1d 100%) padding-box, linear-gradient(to bottom, #fff8ca 0%, #f0c65b 45%, #b56b23 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(245, 207, 111, .98), 0 11px 24px rgba(72, 14, 28, .34), 0 0 18px rgba(219, 166, 57, .22) !important;
}
.gentleland-ivory-action--maroon-primary:hover {
    color: var(--gia-color, #fffbed) !important;
    background: linear-gradient(135deg, #7f464d 0%, #89535b 36%, #8e5961 70%, #855058 100%) padding-box, linear-gradient(to bottom, #fff3b8 0%, #e1ad43 46%, #9f6227 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(232, 188, 91, .98), 0 11px 25px rgba(48, 17, 23, .40), 0 0 17px rgba(200, 145, 48, .18) !important;
}
.gentleland-ivory-action--jewel-primary:hover {
    color: var(--gia-color, #fffdec) !important;
    background: linear-gradient(135deg, #3db3a4 0%, #238e83 34%, #126d67 68%, #07494b 100%) padding-box, linear-gradient(to bottom, #fff8ca 0%, #f0c65b 48%, #b56b23 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(245, 207, 111, .98), 0 11px 24px rgba(4, 56, 54, .34), 0 0 18px rgba(219, 166, 57, .20) !important;
}
.gentleland-ivory-action--gilded-primary:hover {
    color: var(--gia-color, #410914) !important;
    background: linear-gradient(135deg, #fff7c7 0%, #f5d77b 33%, #dfa93c 68%, #bf7625 100%) padding-box, linear-gradient(to bottom, #fffde7 0%, #efc45b 48%, #9e501a 100%) border-box !important;
    box-shadow: 0 0 0 1px rgba(239, 198, 92, 1), 0 11px 25px rgba(105, 58, 17, .32), 0 0 20px rgba(237, 190, 79, .31) !important;
}
.gentleland-ivory-action--burgundy-primary:hover::before,
.gentleland-ivory-action--maroon-primary:hover::before,
.gentleland-ivory-action--jewel-primary:hover::before,
.gentleland-ivory-action--gilded-primary:hover::before { opacity: 1 !important; transform: translateX(2px) !important; }
.gentleland-ivory-action--primary:hover::before,
.gentleland-ivory-action--warm:hover::before,
.gentleland-ivory-action--soft:hover::before { opacity: 1 !important; }
.gentleland-ivory-action:hover > .gentleland-ivory-action__label { filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .78)) !important; transform: scale(1.04) !important; }

.gentleland-ivory-action:active {
    box-shadow: 0 0 0 1px rgba(205, 151, 66, .92), 0 2px 5px rgba(72, 45, 27, .18) !important;
    filter: brightness(var(--gia-click-brightness, .98)) drop-shadow(0 0 2px rgba(255, 250, 222, .95)) drop-shadow(0 0 var(--gia-outline-glow, 7px) var(--gia-outline-color, #fff6ca)) !important;
    transform: translateY(var(--gia-click-y, 0px)) scale(var(--gia-click-scale, .992)) !important;
    transition-duration: var(--gia-click-duration, 160ms) !important;
}

.gentleland-ivory-action--raised:active::before,
.gentleland-ivory-action--teal:active::before { transform: translateY(1px) !important; }

.gentleland-ivory-action--flat:active {
    background: linear-gradient(to bottom, #f8eddd 0%, #fffaf0 45%, #f5e8d5 100%) padding-box, linear-gradient(to bottom, #fff2bd 0%, #efd283 14%, #d7aa53 38%, #c18a38 68%, #a96e29 100%) border-box !important;
}

.gentleland-ivory-action--primary:active {
    background: linear-gradient(to bottom, #f4e5ce 0%, #fffaf0 55%, #f0dec3 100%) padding-box, linear-gradient(to bottom, #f0ce7d 0%, #c98931 100%) border-box !important;
}

.gentleland-ivory-action--warm:active {
    background: linear-gradient(to bottom, #ead0ad 0%, #fff0d7 55%, #e5c59c 100%) padding-box, linear-gradient(to bottom, #dfad52 0%, #a96525 100%) border-box !important;
}

.gentleland-ivory-action--soft:active {
    background: linear-gradient(to bottom, #f0e5d7 0%, #fffaf4 55%, #eee2d4 100%) padding-box, linear-gradient(to bottom, #dcba78 0%, #b77f3d 100%) border-box !important;
}

.gentleland-ivory-action--burgundy-primary:active {
    background: linear-gradient(to bottom, #531020 0%, #7a2136 58%, #480b19 100%) padding-box, linear-gradient(to bottom, #d6a33d 0%, #935018 100%) border-box !important;
}

.gentleland-ivory-action--maroon-primary:active {
    background: linear-gradient(to bottom, #52262e 0%, #683740 58%, #5e3038 100%) padding-box, linear-gradient(to bottom, #c58f31 0%, #754019 100%) border-box !important;
}

.gentleland-ivory-action--jewel-primary:active {
    background: linear-gradient(to bottom, #074746 0%, #10645e 58%, #04383a 100%) padding-box, linear-gradient(to bottom, #d6a33d 0%, #935018 100%) border-box !important;
}

.gentleland-ivory-action--gilded-primary:active {
    background: linear-gradient(to bottom, #b66c20 0%, #dfa63b 58%, #a65b1c 100%) padding-box, linear-gradient(to bottom, #e4b64e 0%, #874114 100%) border-box !important;
}

.gentleland-ivory-action:active > .gentleland-ivory-action__label { transform: scale(.97) !important; }
.gentleland-ivory-action:focus:not(:focus-visible) { outline: none !important; }

.gentleland-ivory-action:focus-visible {
    outline: var(--gia-outline-width, 1px) solid var(--gia-outline-color, #fff6ca) !important;
    outline-offset: var(--gia-outline-offset, 2px) !important;
    box-shadow: 0 0 0 2px rgba(238, 204, 126, 1), 0 4px 9px rgba(72, 45, 27, .18) !important;
    filter: drop-shadow(0 0 2px rgba(255, 252, 230, 1)) drop-shadow(0 0 var(--gia-outline-glow, 7px) var(--gia-outline-color, #fff6ca)) !important;
}

.gentleland-ivory-button-block--editor .gentleland-ivory-action__label {
    pointer-events: auto !important;
    cursor: text !important;
}

@media (prefers-reduced-motion: reduce) {
    .gentleland-ivory-action,
    .gentleland-ivory-action::before,
    .gentleland-ivory-action::after,
    .gentleland-ivory-action__label {
        transition: none !important;
    }
}

/* FluentCart cart drawer: fixed action column and a true blocking load layer. */
body:not(.wp-admin) .fct-cart-drawer {
    isolation: isolate !important;
}

body:not(.wp-admin) .fct-cart-drawer .fct-cart-item-summary {
    flex: 0 0 78px !important;
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    align-items: center !important;
}

body:not(.wp-admin) .fct-cart-drawer .fct-cart-item-remove {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
    align-items: center !important;
}

body:not(.wp-admin) .fct-cart-drawer .fct-cart-item-delete-button {
    align-self: center !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:not(.wp-admin) {
    --gentleland-loading-curtain:
        linear-gradient(145deg,
            rgba(255, 248, 207, .82) 0%,
            rgba(245, 217, 127, .70) 24%,
            rgba(215, 164, 68, .58) 50%,
            rgba(255, 233, 157, .68) 66%,
            rgba(181, 120, 41, .60) 100%);
}

body:not(.wp-admin) .fct-cart-drawer > .fct-loader-wrap,
body:not(.wp-admin) .fct-cart-drawer > [data-fluent-cart-cart-drawer-loader] {
    z-index: 2147483000 !important;
    pointer-events: none !important;
    cursor: wait !important;
    opacity: 0 !important;
    background: var(--gentleland-loading-curtain) !important;
    -webkit-backdrop-filter: blur(3px) saturate(.88) !important;
    backdrop-filter: blur(3px) saturate(.88) !important;
    transition: opacity 150ms ease !important;
}

body:not(.wp-admin) .fct-cart-drawer > .fct-loader-wrap.show,
body:not(.wp-admin) .fct-cart-drawer > [data-fluent-cart-cart-drawer-loader].show {
    display: flex !important;
    pointer-events: all !important;
    opacity: 1 !important;
}

body:not(.wp-admin) .fct-cart-drawer[data-gentleland-cart-busy="true"] > :not(.fct-loader-wrap):not([data-fluent-cart-cart-drawer-loader]),
body:not(.wp-admin) .fct-cart-drawer:has(> .fct-loader-wrap.show) > :not(.fct-loader-wrap):not([data-fluent-cart-cart-drawer-loader]) {
    pointer-events: none !important;
    user-select: none !important;
}

body:not(.wp-admin) .fct-cart-drawer[data-gentleland-cart-busy="true"] :is(button, a, input),
body:not(.wp-admin) .fct-cart-drawer:has(> .fct-loader-wrap.show) :is(button, a, input) {
    cursor: wait !important;
    transform: none !important;
    filter: none !important;
}

/* Metallic FluentPlayer-inspired loading rings. */
body:not(.wp-admin) .fluent-cart-add-to-cart-button > .fluent-cart-loader,
body:not(.wp-admin) .fct-product-view-button > .fluent-cart-loader {
    box-sizing: border-box !important;
    border-radius: inherit !important;
    background:
        var(--gentleland-loading-curtain),
        linear-gradient(to bottom, #fffaf0 0%, #f8efdf 48%, #edddc5 100%) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .82),
        inset 0 -1px 0 rgba(142, 92, 34, .22) !important;
    -webkit-backdrop-filter: blur(2px) saturate(.90) !important;
    backdrop-filter: blur(2px) saturate(.90) !important;
}

body:not(.wp-admin) .fct-loader-spinner {
    position: relative !important;
    width: 54px !important;
    height: 54px !important;
    flex: 0 0 54px !important;
    border-radius: 50% !important;
    filter: drop-shadow(0 2px 4px rgba(113, 68, 23, .28)) drop-shadow(0 0 8px rgba(255, 233, 157, .28)) !important;
}

body:not(.wp-admin) .fct-loader-spinner::before,
body:not(.wp-admin) .fct-loader-spinner::after {
    content: "" !important;
    position: absolute !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: conic-gradient(
        from 15deg,
        transparent 0deg,
        #fff8cf 34deg,
        #f5d97f 82deg,
        #d7a444 142deg,
        #ffe99d 205deg,
        #c98b32 266deg,
        #89551e 322deg,
        transparent 360deg
    ) !important;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
    -webkit-mask-composite: xor !important;
    mask-composite: exclude !important;
    box-sizing: border-box !important;
}

body:not(.wp-admin) .fct-loader-spinner::before {
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    padding: 4px !important;
    animation: fluentCartSpin 920ms linear infinite !important;
}

body:not(.wp-admin) .fct-loader-spinner::after {
    inset: 8px !important;
    width: auto !important;
    height: auto !important;
    padding: 2px !important;
    opacity: .78 !important;
    transform: none !important;
    animation: gentlelandGoldSpinReverse 1300ms linear infinite !important;
}

@keyframes gentlelandGoldSpinReverse {
    to { transform: rotate(-360deg); }
}

body:not(.wp-admin) .fluent-cart-loader svg {
    color: #f5d97f !important;
    fill: #b9782a !important;
    filter: drop-shadow(0 1px 2px rgba(113, 68, 23, .25)) drop-shadow(0 0 4px rgba(255, 233, 157, .32)) !important;
}

body:not(.wp-admin) .fluent-cart-loader svg path:first-child {
    color: #f4dfa2 !important;
    fill: currentColor !important;
    opacity: .54 !important;
}

body:not(.wp-admin) .fluent-cart-loader svg path:last-child {
    color: #b9782a !important;
    fill: currentColor !important;
    opacity: 1 !important;
}

body:not(.wp-admin) .fct-payment-method-loader svg {
    color: #b9782a !important;
    fill: none !important;
    filter: drop-shadow(0 1px 2px rgba(113, 68, 23, .25)) drop-shadow(0 0 4px rgba(255, 233, 157, .32)) !important;
}

body:not(.wp-admin) .fct-payment-method-loader svg circle {
    fill: none !important;
    stroke: #f4dfa2 !important;
    opacity: .66 !important;
}

body:not(.wp-admin) .fct-payment-method-loader svg path {
    fill: none !important;
    stroke: #b9782a !important;
    opacity: 1 !important;
}

body:not(.wp-admin) :is(button, a).fct-loading,
body:not(.wp-admin) .fct-product-view-button.loading,
body:not(.wp-admin) :is(button, a)[aria-busy="true"] {
    pointer-events: none !important;
    cursor: wait !important;
}

/* Restored checkout terms link. */
body:not(.wp-admin) .fct_checkout_agree_terms .gentleland-checkout-terms-link {
    position: relative !important;
    z-index: 2 !important;
    color: #6b1d2b !important;
    -webkit-text-fill-color: #6b1d2b !important;
    text-decoration: underline !important;
    text-decoration-color: #c58d36 !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 2px !important;
    cursor: pointer !important;
    pointer-events: auto !important;
}

body:not(.wp-admin) .fct_checkout_agree_terms .gentleland-checkout-terms-link:hover {
    color: #8b2638 !important;
    -webkit-text-fill-color: #8b2638 !important;
    text-decoration-color: #9e6425 !important;
}

/* FluentCart coupon feedback uses Toastify outside the checkout container. */
body:not(.wp-admin) .toastify.info,
body:not(.wp-admin) .toastify.warning {
    max-width: min(390px, calc(100vw - 30px)) !important;
    padding: 12px 15px !important;
    color: #52212a !important;
    -webkit-text-fill-color: #52212a !important;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    border: 1px solid #c99455 !important;
    border-left-width: 4px !important;
    border-radius: 9px !important;
    background: linear-gradient(135deg, #fff8e9 0%, #f4ddbd 100%) !important;
    box-shadow: 0 10px 26px rgba(72, 45, 27, .20), inset 0 1px 0 rgba(255, 255, 255, .72) !important;
}

body:not(.wp-admin) .toastify.warning {
    color: #741c2d !important;
    -webkit-text-fill-color: #741c2d !important;
    border-color: #a94a58 !important;
    border-left-color: #7e1f30 !important;
    background: linear-gradient(135deg, #fff7e7 0%, #f4d4cf 100%) !important;
}

body:not(.wp-admin) .toastify.warning .warn.warning::before {
    border-bottom-color: #d7a444 !important;
    box-shadow: 0 1px 2px rgba(72, 45, 27, .30) !important;
}

body:not(.wp-admin) .toastify.warning .warn.warning::after {
    color: #5b1822 !important;
}

@media (prefers-reduced-motion: reduce) {
    body:not(.wp-admin) .fct-loader-spinner::before,
    body:not(.wp-admin) .fct-loader-spinner::after {
        animation-duration: 1800ms !important;
    }
}
