/* Rangkunchala Art Gallery — custom styles (pairs with Bootstrap 4.6) */
:root {
  --ink: #1D1915;
  --cream: #F6F2E9;
  --cream-2: #F1EAD9;
  --bronze: #96754A;
  --bronze-dark: #7E6240;
  --gold: #E8D6AC;
  --muted: #6E655A;
  --soft: #8A8074;
  --faint: #A79B8B;
  --hairline: #E5DCCB;
}
html { scroll-behavior: smooth; }
body { background: var(--cream); color: var(--ink); font-family: 'Jost', sans-serif; -webkit-font-smoothing: antialiased; }
a { color: var(--ink); transition: color .3s ease; }
a:hover { color: var(--bronze); text-decoration: none; }
/* Page transitions — branded veil (fast) */
.rk-curtain { position: fixed; inset: 0; z-index: 300; pointer-events: none; visibility: hidden; background: #F4EEE1; display: flex; align-items: center; justify-content: center; overflow: hidden; opacity: 0; }
.rk-curtain.cover { visibility: visible; opacity: 1; }
.rk-curtain.cover.reveal { opacity: 0; transition: opacity .3s ease; }
.rk-curtain.cover.paint { animation: rkVeilIn .22s ease forwards; }
@keyframes rkVeilIn { from { opacity: 0; } to { opacity: 1; } }
.rk-veil-brand { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.rk-veil-brand img { height: 62px; width: auto; }
.rk-veil-line { width: 90px; height: 1px; background: var(--bronze); transform: scaleX(0); transform-origin: center; }
.rk-curtain.cover .rk-veil-line { transform: scaleX(1); transition: transform .35s ease .05s; }
body.rk-anim { opacity: 1; }
body.rk-anim.rk-fade { opacity: 0; }
body.rk-anim.rk-fade.rk-in { opacity: 1; transition: opacity .3s ease; }
.font-display { font-family: 'Playfair Display', serif; }

/* Header */
.rk-header { position: sticky; top: 0; left: 0; right: 0; z-index: 50; background-color: #FDF6E5; background-image: url('../img/paper-texture.jpg'); background-size: cover; background-position: center 30%; border-bottom: 1px solid rgba(216,205,182,.7); transform: translateY(0); transition: transform .4s cubic-bezier(.2,.6,.2,1), background .35s ease, border-color .35s ease, box-shadow .35s ease; }
.rk-header.rk-scrolled { background-color: var(--cream); background-image: none; box-shadow: 0 12px 34px -26px rgba(29,25,21,.5); border-bottom-color: rgba(216,205,182,.7); box-shadow: 0 12px 34px -26px rgba(29,25,21,.5); }
.rk-header.rk-hidden { transform: translateY(-102%); }
.rk-header.rk-scrolled .navbar { padding-top: 12px; padding-bottom: 12px; }
.rk-header.rk-scrolled .rk-brand img { height: 46px !important; }
.rk-header .navbar, .rk-header .rk-brand img { transition: padding .35s ease, height .35s ease; }
.rk-header .navbar { max-width: 1400px; margin: 0 auto; padding: 16px 40px; align-items: center; justify-content: flex-start; gap: 40px; }
.rk-brand { display: flex; flex-direction: column; line-height: 1; }
.rk-brand .name { font-family: 'Playfair Display', serif; font-size: 27px; font-weight: 600; color: var(--ink); }
.rk-brand img { height: 64px !important; display: block; }
.rk-brand .tag { font-size: 9.5px; letter-spacing: .38em; color: var(--gold); margin-top: 4px; text-transform: uppercase; }
.rk-nav a { color: #4A3319; margin-left: 0; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; margin-left: 34px; }
.rk-nav a:hover { color: var(--bronze); }
.rk-nav .btn-enquire { border: 1px solid var(--bronze); border-radius: 999px; padding: 10px 22px; color: #4A3319; }
.rk-nav .btn-enquire:hover { background: var(--bronze); color: #fff; }

/* Hero */
.rk-hero { position: relative; min-height: 0; display: block; overflow: hidden; background: #F3EDE1; }
.rk-hero__img { position: static; display: block; width: 100%; height: auto; }
.rk-hero__tint { position: absolute; inset: 0; background: rgba(0,0,0,.34); }
.rk-hero__content { position: relative; z-index: 1; max-width: 1400px; width: 100%; margin: 0 auto; padding: 48px 40px 60px; }
.rk-hero .rk-suggested { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 0; }
.rk-hero h1 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: clamp(32px, 3.2vw, 50px); line-height: 1.12; color: #4A3319; max-width: 15ch; }
.rk-hero .lead-line { font-size: 15px; color: #5C4425; max-width: 34ch; line-height: 1.65; margin-bottom: 30px; }
.rk-search { max-width: min(430px, 100%); display: flex; align-items: center; gap: 10px; border-bottom: 1px solid rgba(74,51,25,.6); padding-bottom: 8px; }
.rk-search input { flex: 1; min-width: 120px; font-size: 15px; color: #4A3319; background: transparent; border: none; outline: none; padding: 4px 0; }
.rk-search input::placeholder { color: #8A6F4A; }
.rk-search button { background: none; border: none; cursor: pointer; padding: 2px; }
.rk-suggested { margin-top: 18px; }
.rk-suggested .label { font-size: 12px; color: #8A6F4A; margin-right: 14px; }
.rk-suggested button { font-size: 12.5px; letter-spacing: .06em; color: #4A3319; background: none; border: none; border-bottom: 1px solid rgba(74,51,25,.4); padding: 2px 1px; margin-right: 20px; cursor: pointer; transition: color .3s ease; }
.rk-suggested button:hover { color: var(--bronze); }

/* Category strip */
.rk-scrollwrap { position: relative; overflow: hidden; }
.rk-cats { padding: 24px 0 24px 24px; display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.rk-cats::-webkit-scrollbar { display: none; }
.rk-cat-tile { position: relative; flex: 0 0 clamp(300px, 28vw, 440px); height: 96px; border: none; padding: 0; cursor: pointer; overflow: hidden; background: #D8CDB6; display: flex; align-items: center; justify-content: center; }
.rk-cat-tile .bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .8s cubic-bezier(.2,.6,.2,1); }
.rk-cat-tile:hover .bg { transform: scale(1.07); }
.rk-cat-tile .shade { position: absolute; inset: 0; background: rgba(24,18,12,.4); }
.rk-cat-tile .name { position: relative; font-size: 17px; font-weight: 600; letter-spacing: .06em; color: #fff; }

/* Shared sections */
.rk-section { max-width: 1400px; margin: 0 auto; padding: 76px 40px; }
.rk-h2 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 26px; color: var(--ink); }
.rk-pill { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: #57503F; background: none; border: 1px solid #D8CDB6; border-radius: 999px; padding: 13px 28px; cursor: pointer; transition: all .3s ease; }
.rk-pill:hover, .rk-pill.active { border-color: var(--bronze); color: var(--bronze); }
.rk-pill.chip-active { background: var(--bronze); border-color: var(--bronze); color: #fff; }
.rk-link-caps { font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--bronze); }

/* Season's picks */
.rk-picks { display: flex; gap: 28px; overflow-x: auto; padding-bottom: 14px; scrollbar-width: none; -ms-overflow-style: none; }
.rk-picks::-webkit-scrollbar { display: none; }
.rk-pick { flex: 0 0 250px; cursor: pointer; transition: transform .4s cubic-bezier(.2,.6,.2,1); }
.rk-pick .thumb { overflow: visible; background: transparent; height: 300px; padding: 8px; display: flex; align-items: center; justify-content: center; }
.rk-pick:hover .thumb { background: transparent; }
.rk-pick .thumb .bg { display: block; width: 100%; height: 100%; background-size: contain; background-repeat: no-repeat; background-position: center; border: none; filter: drop-shadow(0 6px 10px rgba(29,25,21,.14)); transition: transform .7s cubic-bezier(.2,.6,.2,1), filter .7s ease; }
.rk-pick:hover .thumb .bg { transform: translateY(-5px); filter: drop-shadow(0 10px 14px rgba(29,25,21,.18)); }
.rk-pick .pick-cap { margin-top: 20px; border-top: 1px solid var(--hairline); padding-top: 13px; }
.rk-pick .pick-cap .cap-top { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; }
.rk-pick .pick-cap .title { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 18px; margin: 0; line-height: 1.3; }
.rk-pick .pick-cap .price { font-size: 14.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.rk-pick .pick-cap .cap-meta { font-size: 12px; color: var(--soft); margin: 5px 0 0; }

/* Why band */
.rk-why { background: var(--cream-2); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.rk-why h3 { font-size: 15px; font-weight: 600; letter-spacing: .06em; }
.rk-why p { font-size: 13.5px; line-height: 1.7; color: var(--muted); }

/* Price boxes */
.rk-price-box { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); background: none; border: 1px solid var(--ink); padding: 16px 34px; cursor: pointer; transition: all .3s ease; }
.rk-price-box:hover { background: var(--bronze); border-color: var(--bronze); color: #fff; }

/* Gallery */
.rk-filterbar { display: flex; align-items: center; justify-content: space-between; gap: 20px 24px; flex-wrap: wrap; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); padding: 18px 0; margin-bottom: 48px; }
.rk-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.rk-chip { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; padding: 9px 18px; border-radius: 999px; cursor: pointer; transition: all .3s ease; border: 1px solid #D8CDB6; background: transparent; color: var(--muted); }
.rk-chip:hover { border-color: var(--bronze); }
.rk-chip.active { background: var(--bronze); border-color: var(--bronze); color: #fff; }
.rk-price-select { font-size: 13px; color: var(--ink); background: transparent; border: none; border-bottom: 1px solid #C9BEA9; padding: 6px 2px; cursor: pointer; outline: none; }
.rk-count { font-size: 12px; color: var(--faint); white-space: nowrap; }
.rk-masonry { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 34px 28px; align-items: stretch; }
.rk-card { margin: 0; background: none; border: none; padding: 0; }
.rk-card .imgwrap { position: relative; overflow: visible; height: clamp(200px, 26vw, 290px); display: flex; align-items: flex-end; justify-content: center; padding: 0; background: transparent; border: none; transition: none; }
.rk-card:hover .imgwrap { box-shadow: none; }
.rk-card .imgwrap img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border: none; filter: drop-shadow(0 6px 10px rgba(29,25,21,.14)); transition: transform .7s cubic-bezier(.2,.6,.2,1), filter .7s ease; }
.rk-card:hover .imgwrap img { transform: translateY(-5px); filter: drop-shadow(0 10px 14px rgba(29,25,21,.18)); }
@media (max-width: 991px) { .rk-card .imgwrap { height: 240px; } }
@media (max-width: 575px) { .rk-masonry { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; } .rk-card .imgwrap { height: 190px; } .rk-card .title { font-size: 15px; } }
.rk-card .actions { display: none; }
.rk-card figcaption { text-align: left; margin-top: 22px; border-top: 1px solid var(--hairline); padding-top: 13px; }
.rk-card .cap-top { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; }
.rk-card .title { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 18px; margin: 0; line-height: 1.3; }
.rk-card .price { font-size: 14.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.rk-card .cap-bottom { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 5px; }
.rk-card .cap-meta { font-size: 12px; color: var(--soft); margin: 0; letter-spacing: .01em; }
.rk-card .cap-icons { display: flex; gap: 12px; flex: 0 0 auto; opacity: 0; transition: opacity .3s ease; }
.rk-card:hover .cap-icons { opacity: 1; }
.rk-card .cap-icons .ic { background: none; border: none; padding: 0; cursor: pointer; color: #9B9082; transition: color .3s ease, transform .25s ease; display: flex; }
.rk-card .cap-icons .ic:hover { color: var(--bronze); transform: scale(1.12); }
.rk-card .cap-icons .ic.faved { color: #B5443C; }
.rk-empty { text-align: center; padding: 60px 0; }
.rk-empty p { font-family: 'Playfair Display', serif; font-size: 26px; color: var(--soft); margin-bottom: 20px; }

/* Advisory */
.rk-advisory { background: var(--cream); border-top: 1px solid var(--hairline); margin-top: 60px; }
.rk-overline { font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--bronze); }
.btn-bronze { display: inline-block; background: var(--bronze); color: #fff; padding: 16px 38px; border-radius: 999px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; border: none; cursor: pointer; transition: background .3s ease; }
.btn-bronze:hover { background: var(--bronze-dark); color: #fff; }

/* Footer */
.rk-footer { background: var(--cream-2); color: var(--muted); border-top: 1px solid var(--hairline); }
.rk-footer .inner { max-width: 1400px; margin: 0 auto; padding: 64px 40px 40px; }
.rk-newsletter { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; padding-bottom: 48px; margin-bottom: 56px; border-bottom: 1px solid #E0D6C2; }
.rk-newsletter .head { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.rk-newsletter .sub { font-size: 13px; color: var(--soft); margin: 0; }
.rk-newsletter input { font-size: 14px; color: var(--ink); background: #FBF7EF; border: 1px solid #E0D6C2; border-radius: 999px; padding: 13px 24px; outline: none; width: min(280px, 70vw); }
.rk-newsletter input::placeholder { color: var(--faint); }
.rk-footer h5 { font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--ink); margin-bottom: 22px; }
.rk-footer .links a { display: block; color: var(--muted); font-size: 14px; margin-bottom: 13px; }
.rk-footer .links a:hover { color: var(--bronze); }
.rk-footer .brand { font-family: 'Playfair Display', serif; font-size: 30px; font-weight: 500; color: var(--ink); margin-bottom: 6px; }
.rk-footer .brand-tag { font-size: 9.5px; letter-spacing: .38em; text-transform: uppercase; color: var(--bronze); margin-bottom: 24px; }
.rk-footer .blurb { font-size: 13.5px; line-height: 1.8; max-width: 34ch; }
.rk-footer .socials a { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; margin-right: 18px; color: var(--muted); }
.rk-footer .copyright { font-size: 12px; color: var(--faint); padding-top: 28px; text-align: center; letter-spacing: .06em; }

/* Creative bands */
.rule-col { border-top: 1px solid #B08D57; padding-top: 24px; }
.pillar-link { display: block; color: inherit; padding: 24px 20px 26px; margin-top: -1px; border-top: 1px solid #B08D57; transition: background .35s ease, transform .35s ease, box-shadow .35s ease; }
.pillar-link:hover { background: #FBF7EE; transform: translateY(-4px); box-shadow: 0 26px 46px -26px rgba(29,25,21,.3); color: inherit; text-decoration: none; }
.pillar-link h3 { transition: color .3s ease; }
.pillar-link:hover h3 { color: var(--bronze); }
.pillar-cta { display: inline-block; margin-top: 18px; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--bronze); opacity: 0; transform: translateX(-6px); transition: opacity .35s ease, transform .35s ease; }
.pillar-link:hover .pillar-cta { opacity: 1; transform: none; }
.pillar-icon { width: 58px; height: 58px; border-radius: 50%; border: 1px solid #D8CDB6; background: #FBF7EF; color: #96754A; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; transition: all .35s ease; }
.pillar-link:hover .pillar-icon { background: #96754A; border-color: #96754A; color: #FFFFFF; }
.rule-col:hover .pillar-icon { background: #96754A; border-color: #96754A; color: #FFFFFF; }
.roman-num { font-family: 'Playfair Display', serif; font-style: italic; font-weight: 500; font-size: 46px; color: #B08D57; line-height: 1; margin: 0; }
.step-photo { height: 210px; overflow: hidden; background: #EFE8DB; margin-bottom: 20px; }
.step-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2,.6,.2,1); }
.step-card:hover .step-photo img { transform: scale(1.05); }
.step-num { font-family: 'Playfair Display', serif; font-style: italic; font-weight: 600; font-size: 34px; color: #B08D57; line-height: 1; }
.step-card h3 { font-family: 'Playfair Display', serif; font-size: 21px; font-weight: 500; margin: 0; }
.step-copy { font-size: 13.5px; line-height: 1.7; color: var(--muted); margin-top: 10px; }
.vmv-row { border-top: 1px solid #E7DFD2; padding: 28px 0; display: flex; gap: 30px; align-items: flex-start; }
.vmv { background: var(--cream); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }

/* Scroll-row arrows */
.rk-scrollwrap { position: relative; }
.rk-scroll-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #E0D6C2; background: rgba(255,255,255,.95); color: var(--bronze); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 22px -8px rgba(29,25,21,.3); transition: all .3s ease; }
.rk-scroll-arrow:hover { background: var(--bronze); border-color: var(--bronze); color: #fff; }
.rk-scroll-arrow.prev { left: 8px; }
.rk-scroll-arrow.next { right: 8px; }
.rk-scroll-arrow[disabled] { opacity: 0; pointer-events: none; }
/* Center arrows on the artwork thumbnail (not the caption below) */
.rk-scrollwrap:has(.rk-picks) .rk-scroll-arrow { top: 125px; }

/* Solid header for inner pages */
.rk-header--solid { background-color: var(--cream) !important; background-image: none !important; border-bottom: 1px solid var(--hairline); }
body:not(#top[data-hero]) .rk-page-hero { padding-top: 44px; }
.rk-header--solid .rk-nav a { color: #4A3319; margin-left: 0; }
.rk-header--solid .rk-nav a:hover { color: var(--bronze); }
.rk-header--solid .rk-nav .btn-enquire { border-color: var(--bronze); color: var(--ink); }
.rk-header--solid .rk-nav .btn-enquire:hover { background: var(--bronze); color: #fff; }
.rk-nav a.active { color: var(--bronze); }
.rk-header--solid .navbar { padding: 14px 40px; }

/* Inner page hero band */
.rk-page-hero { max-width: 1400px; margin: 0 auto; padding: 64px 40px 12px; }
.rk-page-hero h1 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: clamp(34px, 4vw, 54px); margin: 0 0 14px; }
.rk-page-hero .sub { font-size: 15px; line-height: 1.75; color: var(--muted); max-width: 60ch; }

/* Project cards (commissions) */
.proj-meta { display: grid; grid-template-columns: auto 1fr; gap: 7px 20px; font-size: 15px; margin-top: 12px; }
.proj-meta dt { letter-spacing: .12em; text-transform: uppercase; color: #7C7264; font-weight: 500; font-size: 12px; padding-top: 3px; }
.proj-meta dd { color: #4A4438; font-size: 15.5px; line-height: 1.5; margin: 0; }

/* Artwork detail stage */
.rk-detail { display: flex; gap: 16px; }
.rk-thumbs { display: flex; flex-direction: column; gap: 12px; flex: 0 0 76px; }
.rk-thumb { width: 76px; height: 76px; border: 1px solid #E0D6C2; background: #EFE8DA; cursor: pointer; overflow: hidden; position: relative; padding: 0; transition: border-color .25s ease; }
.rk-thumb.active { border-color: #1D1915; box-shadow: inset 0 0 0 1px #1D1915; }
.rk-stage { flex: 1 1 auto; min-width: 0; height: clamp(420px, 72vh, 680px); background: transparent; position: relative; overflow: hidden; display: block; }
.rk-detail-actions { display: flex; align-items: center; gap: 26px; padding: 18px 4px 0; }
.rk-act-btn { display: inline-flex; align-items: center; gap: 8px; background: none; border: none; padding: 0; cursor: pointer; font-family: 'Jost', sans-serif; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #6E655A; transition: color .25s ease; }
.rk-act-btn:hover { color: var(--bronze); }
.rk-act-btn.on { color: #B5443C; }
@media (max-width: 575px) { .rk-thumbs { flex: 0 0 54px; } .rk-thumb { width: 54px; height: 68px; } .rk-stage { min-height: 340px; height: min(62vh, 520px); } }
.rk-stage img { cursor: zoom-in; }

/* View on your wall */
.rk-ar { position: fixed; inset: 0; z-index: 200; background: rgba(23,19,15,.7); display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.rk-ar.open { opacity: 1; visibility: visible; }
.rk-ar-panel { background: var(--cream); width: min(920px, 96vw); max-height: 92vh; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.rk-ar-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 26px; border-bottom: 1px solid var(--hairline); }
.rk-ar-close { background: none; border: none; font-size: 30px; line-height: 1; color: var(--ink); cursor: pointer; }
.rk-ar-stage { position: relative; flex: 1; min-height: 300px; height: 52vh; background: #E8E2D6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Crect width='40' height='40' fill='%23E8E2D6'/%3E%3Cpath d='M0 40L40 0' stroke='%23DED6C6' stroke-width='1'/%3E%3C/svg%3E"); background-size: cover; overflow: hidden; }
.rk-ar-stage.has-photo { background-size: cover; background-position: center; }
.rk-ar-hint { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); text-align: center; font-size: 13px; letter-spacing: .04em; color: #8A8074; max-width: 30ch; }
.rk-ar-piece { position: absolute; left: 50%; top: 46%; transform: translate(-50%,-50%); width: 30%; box-shadow: 0 18px 40px -14px rgba(0,0,0,.5); border: 4px solid #fff; cursor: grab; user-select: none; }
.rk-ar-piece:active { cursor: grabbing; }
.rk-ar-controls { padding: 20px 26px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.rk-ar-upload span { display: inline-block; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); border: 1px solid var(--bronze); border-radius: 999px; padding: 11px 24px; cursor: pointer; transition: all .3s ease; }
.rk-ar-upload span:hover { background: var(--bronze); color: #fff; }
.rk-ar-slider { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #8A8074; }
.rk-ar-slider input { width: 180px; accent-color: var(--bronze); }
.rk-ar-note { flex-basis: 100%; font-size: 12.5px; color: #8A8074; margin: 0; }

/* Cart page */
.cp-wrap { max-width: 1400px; margin: 0 auto; padding: 60px 40px 90px; }
.cp-grid { display: grid; grid-template-columns: 1fr 360px; gap: 56px; align-items: start; }
.cp-table { width: 100%; border-collapse: collapse; }
.cp-table thead th { text-align: left; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--faint); font-weight: 600; padding: 0 0 18px; border-bottom: 1px solid var(--hairline); }
.cp-table thead th:last-child, .cp-sub { text-align: right; }
.cp-table td { padding: 24px 0; border-bottom: 1px solid var(--hairline); vertical-align: middle; }
.cp-prod { display: flex; align-items: center; gap: 20px; }
.cp-rm { background: none; border: none; font-size: 22px; color: var(--faint); cursor: pointer; line-height: 1; }
.cp-rm:hover { color: #B5443C; }
.cp-thumb { flex: 0 0 84px; height: 84px; background: #EEE7D8; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.cp-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cp-name { font-family: 'Playfair Display', serif; font-size: 19px; color: var(--ink); }
.cp-artist { font-size: 13px; color: var(--soft); margin: 4px 0 0; }
.cp-price, .cp-sub { font-size: 14px; color: var(--ink); }
.cp-sub { font-weight: 600; }
.cp-stepper { display: inline-flex; align-items: center; border: 1px solid #D8CDB6; border-radius: 999px; }
.cp-stepper button { width: 38px; height: 40px; background: none; border: none; font-size: 18px; color: var(--ink); cursor: pointer; }
.cp-stepper button:hover { color: var(--bronze); }
.cp-stepper span { min-width: 34px; text-align: center; font-size: 15px; }
.cp-totals { background: #FAF6EC; padding: 34px 30px; }
.cp-totals h2 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 24px; margin: 0 0 22px; }
.cp-line { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; border-bottom: 1px solid #E5DCCB; font-size: 14px; color: var(--muted); }
.cp-line .v { color: var(--ink); }
.cp-line.total { border-bottom: none; padding-top: 20px; font-size: 16px; }
.cp-line.total .l { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 22px; color: var(--ink); }
.cp-line.total .v { font-family: 'Jost', sans-serif; font-weight: 600; font-size: 22px; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
.cp-ship-note { font-size: 12px; color: var(--faint); margin: 2px 0 0; }
.cp-checkout { display: block; width: 100%; text-align: center; margin-top: 22px; border-radius: 0; }
.cp-coupon { display: flex; gap: 10px; margin-top: 30px; }
.cp-coupon input { flex: 1; font-family: 'Jost', sans-serif; font-size: 14px; background: #FBF7EF; border: 1px solid #E0D6C2; padding: 12px 16px; outline: none; }
.cp-coupon button { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; background: none; border: 1px solid var(--bronze); color: var(--ink); padding: 0 22px; cursor: pointer; transition: all .3s ease; }
.cp-coupon button:hover { background: var(--bronze); color: #fff; }
.cp-empty { text-align: center; padding: 90px 0; }
.cp-empty p { font-family: 'Playfair Display', serif; font-size: 26px; color: var(--soft); margin-bottom: 22px; }
@media (max-width: 900px) { .cp-grid { grid-template-columns: 1fr; gap: 36px; } .cp-table thead { display: none; } .cp-table td { display: block; border: none; padding: 6px 0; } .cp-table tr { display: block; padding: 20px 0; border-bottom: 1px solid var(--hairline); } .cp-price::before { content: 'Price: '; color: var(--faint); } .cp-sub { text-align: left; } .cp-sub::before { content: 'Subtotal: '; color: var(--faint); } }

/* Cart */
.rk-cart-btn { position: relative; background: none; border: none; padding: 0; margin-left: 30px; cursor: pointer; color: #F5EFE3; display: inline-flex; align-items: center; }
.rk-header--solid .rk-cart-btn { color: var(--ink); }
.rk-cart-btn:hover { color: var(--bronze); }
.rk-cart-n { position: absolute; top: -7px; right: -9px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--bronze); color: #fff; font-size: 10px; font-family: 'Jost', sans-serif; letter-spacing: 0; display: none; align-items: center; justify-content: center; }
.rk-cart { position: fixed; inset: 0; z-index: 210; visibility: hidden; }
.rk-cart.open { visibility: visible; }
.rk-cart-scrim { position: absolute; inset: 0; background: rgba(23,19,15,.5); opacity: 0; transition: opacity .3s ease; }
.rk-cart.open .rk-cart-scrim { opacity: 1; }
.rk-cart-panel { position: absolute; top: 0; right: 0; height: 100%; width: min(420px, 92vw); background: var(--cream); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .35s cubic-bezier(.2,.6,.2,1); box-shadow: -20px 0 50px -20px rgba(29,25,21,.4); }
.rk-cart.open .rk-cart-panel { transform: none; }
.rk-cart-head { display: flex; align-items: center; justify-content: space-between; padding: 24px 26px; border-bottom: 1px solid var(--hairline); }
.rk-cart-close { background: none; border: none; font-size: 30px; line-height: 1; color: var(--ink); cursor: pointer; }
.rk-cart-items { flex: 1; overflow-y: auto; padding: 12px 26px; }
.rk-cart-empty { text-align: center; color: #8A8074; font-size: 14px; padding: 60px 0; line-height: 2; }
.rk-cart-empty a { color: var(--bronze); }
.rk-cart-item { display: flex; gap: 16px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--hairline); }
.rk-cart-thumb { flex: 0 0 64px; height: 64px; background: #EFE8DA; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rk-cart-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.rk-cart-meta { flex: 1; }
.rk-cart-meta h4 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 16px; margin: 0 0 2px; color: var(--ink); }
.rk-cart-meta p { font-size: 12px; color: var(--soft); margin: 0 0 4px; }
.rk-cart-meta span { font-size: 13px; font-weight: 500; color: var(--ink); }
.rk-cart-rm { background: none; border: none; font-size: 20px; color: var(--faint); cursor: pointer; align-self: flex-start; }
.rk-cart-rm:hover { color: #B5443C; }
.rk-cart-foot { padding: 22px 26px 26px; border-top: 1px solid var(--hairline); }
.rk-cart-sub { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 16px; }
.rk-cart-sub span:last-child { font-weight: 600; }
.rk-cart-enquire { display: block; text-align: center; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--bronze); margin-top: 14px; }

/* Hamburger (hidden on desktop) */
.rk-burger { display: none; margin-left: auto; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; background: none; border: none; cursor: pointer; padding: 0; z-index: 70; }
.rk-burger span { display: block; width: 24px; height: 2px; background: var(--ink); margin: 0 auto; transition: transform .3s ease, opacity .3s ease; }
.rk-header--solid .rk-burger span { background: var(--ink); }

@media (max-width: 991px) {
  .rk-header .navbar { padding: 16px 22px; }
  .rk-burger { display: flex; }
  .rk-nav { position: fixed; top: 0; left: 0; height: 100vh; width: min(320px, 82vw); background: var(--cream); flex-direction: column; align-items: flex-start !important; gap: 4px; transform: translateX(-100%); transition: transform .38s cubic-bezier(.2,.6,.2,1); overflow-y: auto; z-index: 65; }
  .rk-nav-open .rk-nav { transform: none; }
  .rk-nav a { color: var(--ink) !important; margin-left: 0 !important; font-size: 15px; letter-spacing: .1em; padding: 15px 0; width: 100%; border-bottom: 1px solid var(--hairline); }
  .rk-nav a:hover { color: var(--bronze) !important; }
  .rk-nav .btn-enquire { border: none; border-radius: 0; padding: 15px 0; }
  .rk-nav .btn-enquire:hover { background: none; color: var(--bronze) !important; }
  .rk-nav .rk-cart-btn { margin-left: 0; margin-top: 20px; }
  /* burger → X when open */
  .rk-nav-open .rk-burger span { background: var(--ink); }
  .rk-nav-open .rk-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .rk-nav-open .rk-burger span:nth-child(2) { opacity: 0; }
  .rk-nav-open .rk-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  /* scrim behind the drawer */
  .rk-nav-open::after { content: ''; position: fixed; inset: 0; background: rgba(23,19,15,.4); z-index: 60; }
  /* mega menu behaves as inline text on mobile — hide the fancy panel */
  .rk-mega { display: none !important; }
  /* detail page single column */
  .rk-detail { flex-direction: column; }
  .rk-thumbs { flex-direction: row !important; flex: none !important; }
}

@media (max-width: 767px) {
  .rk-header .navbar, .rk-hero__content, .rk-section, .rk-footer .inner, .cp-wrap { padding-left: 18px; padding-right: 18px; }
  .rk-page-hero { padding-left: 18px; padding-right: 18px; }
  .rk-hero { min-height: 62vh; }
  .rk-hero__content { padding-top: 128px; padding-bottom: 44px; }
  .rk-section { padding-top: 54px; padding-bottom: 54px; }
  .rk-cats { padding: 18px 0 18px 18px; gap: 14px; }
  .rk-cat-tile { flex: 0 0 clamp(200px, 62vw, 260px) !important; height: 132px; }
  .rk-picks .rk-pick, .rk-pick { flex: 0 0 66vw !important; }
  .rk-brand img { height: 52px !important; }
  .rk-filterbar { flex-direction: column; align-items: flex-start; gap: 14px; }
  .rk-mega__inner { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .rk-cart-panel { width: 100vw; }
}

/* Touch devices — reveal hover-only affordances, remove hover transforms */
@media (hover: none) {
  .pillar-cta { opacity: 1 !important; transform: none !important; }
  .rk-card .actions { opacity: 1 !important; }
  .rk-card:hover .imgwrap img, .rk-cat-tile:hover .bg, .rk-pick:hover .thumb .bg { transform: none; }
  .rk-scroll-arrow { display: none; }
  .rk-cats, .rk-picks { scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
  .rk-cat-tile, .rk-pick { scroll-snap-align: start; }
  .rk-card .cap-icons .ic, .rk-act-btn, .cp-stepper button, .rk-chip, .rk-pill { min-height: 44px; }
  .cp-stepper button { min-width: 44px; }
}

/* Legal / policy pages */
.rk-legal { max-width: 760px; }
.rk-legal .rk-legal-lead { font-size: 17px; line-height: 1.75; color: #57503F; margin-bottom: 30px; }
.rk-legal h2 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 24px; color: var(--ink); margin: 38px 0 12px; }
.rk-legal p { font-size: 15px; line-height: 1.85; color: #57503F; margin: 0 0 16px; }
.rk-legal ul { font-size: 15px; line-height: 1.85; color: #57503F; margin: 0 0 16px; padding-left: 22px; }
.rk-legal li { margin-bottom: 6px; }
.rk-legal a { color: var(--bronze); border-bottom: 1px solid #C9BEA9; }

/* Localised zoom lens (copyright-safe) */
.rk-stage img { -webkit-user-drag: none; user-select: none; }
.rk-lens { position: absolute; pointer-events: none; border-radius: 50%; border: 1px solid rgba(150,117,74,.5); box-shadow: 0 10px 30px -10px rgba(29,25,21,.45); background-repeat: no-repeat; opacity: 0; transition: opacity .18s ease; z-index: 5; overflow: hidden; }
.rk-lens.on { opacity: 1; }
.rk-lens-hint { position: absolute; left: 0; right: 0; bottom: 8px; text-align: center; font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.85); text-shadow: 0 1px 4px rgba(0,0,0,.6); }

/* Nav dropdowns */
.rk-navitem { position: relative; display: inline-flex; align-items: center; }
.rk-navitem.open .rk-drop ul { list-style: none; margin: 0; padding: 0; }
.rk-drop li a { display: block; padding: 9px 24px; font-family: 'Jost', sans-serif; font-size: 13px; letter-spacing: .04em; text-transform: none; color: var(--ink); white-space: nowrap; transition: color .22s ease, padding-left .22s ease; margin: 0 !important; }
.rk-drop li a:hover { color: var(--bronze); padding-left: 30px; }
.rk-drop li:first-child a { font-family: 'Playfair Display', serif; font-size: 15.5px; padding-bottom: 12px; margin-bottom: 6px !important; border-bottom: 1px solid var(--hairline); }
.rk-navitem.open > a { color: var(--bronze); }

/* Uniform grid alignment */
.rk-card { display: flex; flex-direction: column; }
.rk-card figcaption { margin-top: auto; }
.rk-pick { display: flex; flex-direction: column; }
.rk-pick .pick-cap { margin-top: auto; }

@media (max-width: 991px) {
  .rk-navitem { display: block; width: 100%; }
      .rk-drop li a { padding: 9px 0; border-bottom: none !important; }
}

/* Uniform card baseline */
.rk-card figcaption { margin-top: 0; padding-top: 13px; }
.rk-card .cap-meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rk-pick .thumb { align-items: flex-end !important; }
.rk-pick .pick-cap .cap-meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Facet filters */
.rk-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 18px 26px; padding: 0 0 22px; margin-bottom: 4px; }
.rk-fl { display: flex; flex-direction: column; gap: 7px; margin: 0; }
.rk-fl > span { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--faint); }
.rk-fl select { font-family: 'Jost', sans-serif; font-size: 13.5px; color: var(--ink); background: transparent; border: none; border-bottom: 1px solid #C9BEA9; padding: 6px 20px 6px 0; cursor: pointer; outline: none; min-width: 150px; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #96754A 50%), linear-gradient(135deg, #96754A 50%, transparent 50%); background-position: right 6px center, right 1px center; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.rk-fl.on > span { color: var(--bronze); }
.rk-fl.on select { border-bottom-color: var(--bronze); font-weight: 500; }
.rk-fl-clear { align-self: flex-end; font-family: 'Jost', sans-serif; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--soft); background: none; border: none; border-bottom: 1px solid transparent; padding: 6px 0; cursor: pointer; transition: color .25s ease, border-color .25s ease; }
.rk-fl-clear:hover { color: var(--bronze); border-bottom-color: var(--bronze); }
@media (max-width: 767px) { .rk-filters { gap: 14px 18px; } .rk-fl select { min-width: 132px; font-size: 13px; } }

.rk-stage > .rk-artfill { position: absolute; inset: 0; }

/* Hero copy panel — legibility never depends on the banner's diagonal */
.rk-hero__panel { width: min(560px, 100%); padding: 0; margin-left: 0; background: none; }

@media (max-width: 767px) {
  .rk-hero__content { padding: 28px 20px 38px; }
}

/* Active search / filter chips on the results page */
.rk-activeq { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; }
.rk-aq { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; letter-spacing: .04em; color: var(--ink); background: #FBF7EF; border: 1px solid var(--bronze); border-radius: 999px; padding: 7px 8px 7px 16px; }
.rk-aq button { background: none; border: none; font-size: 16px; line-height: 1; color: var(--soft); cursor: pointer; padding: 0 4px; }
.rk-aq button:hover { color: #B5443C; }
.rk-aq-clear { font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--soft); background: none; border: none; border-bottom: 1px solid transparent; padding: 6px 0; cursor: pointer; transition: color .25s ease, border-color .25s ease; }
.rk-aq-clear:hover { color: var(--bronze); border-bottom-color: var(--bronze); }

/* Header controls: light at the top over the collage, ink once the bar appears */
.rk-header:not(.rk-scrolled) .rk-nav a,
.rk-header:not(.rk-scrolled) .rk-cart-btn { color: #FFFFFF; }
.rk-header:not(.rk-scrolled) .rk-nav .btn-enquire { color: #FFFFFF; border-color: rgba(255,255,255,.75); }
.rk-header:not(.rk-scrolled) .rk-nav .btn-enquire:hover { background: #FFFFFF; color: var(--ink); text-shadow: none; }
.rk-header:not(.rk-scrolled) .rk-burger span { background: #FFFFFF; }
.rk-header.rk-scrolled .rk-nav a,
.rk-header.rk-scrolled .rk-cart-btn { color: #4A3319; text-shadow: none; }
.rk-header.rk-scrolled .rk-burger span { background: #4A3319; box-shadow: none; }
/* inner pages always show the solid bar, so keep them ink */
.rk-header--solid .rk-nav a, .rk-header--solid .rk-cart-btn { color: #4A3319 !important; text-shadow: none !important; }
.rk-header--solid .rk-burger span { background: #4A3319 !important; box-shadow: none !important; }
.rk-header--solid .rk-brand img { filter: none !important; }

/* Left-aligned nav on a cream band; cart pinned right */
.rk-header .rk-nav { gap: 30px; }
.rk-header .rk-cart-btn { margin-left: auto !important; }
.rk-header:not(.rk-scrolled) .rk-nav a,
.rk-header:not(.rk-scrolled) .rk-cart-btn { color: #4A3319; }
.rk-header:not(.rk-scrolled) .rk-nav .btn-enquire { color: #4A3319; border-color: var(--bronze); }
.rk-header:not(.rk-scrolled) .rk-nav .btn-enquire:hover { background: var(--bronze); color: #fff; }
.rk-header:not(.rk-scrolled) .rk-burger span { background: #4A3319; }
@media (min-width: 992px) { .rk-nav a { margin-left: 0; } }

/* Header layout lock — beats Bootstrap's justify-content-between, no wrap, stable height */
.rk-header .navbar.navbar {
  display: flex; flex-wrap: nowrap; align-items: center;
  justify-content: flex-start; gap: 36px;
  max-width: 1400px; margin: 0 auto; padding: 14px 40px; min-height: 76px;
}
.rk-header .navbar.navbar .rk-brand { flex: 0 0 auto; }
.rk-header .navbar.navbar .rk-nav { flex: 1 1 auto; flex-wrap: nowrap; align-items: center; gap: 28px; justify-content: flex-start; }
.rk-header .navbar.navbar .rk-cart-btn { flex: 0 0 auto; margin-left: auto !important; margin-top: 0 !important; }
.rk-header .rk-brand img { height: 52px !important; }
.rk-header.rk-scrolled .rk-brand img { height: 44px !important; }
.rk-header.rk-scrolled .navbar.navbar { padding-top: 10px; padding-bottom: 10px; min-height: 66px; }
@media (max-width: 1200px) { .rk-header .navbar.navbar .rk-nav { gap: 20px; } .rk-header .navbar.navbar { gap: 24px; } }
@media (max-width: 991px) {
  .rk-header .navbar.navbar { justify-content: space-between; gap: 12px; }
  .rk-header .navbar.navbar .rk-nav { flex: none; flex-wrap: wrap; }
}

/* Hero copy left-aligned */
.rk-hero__content, .rk-hero__panel, .rk-hero h1, .rk-hero .lead-line, .rk-hero .rk-suggested { text-align: left; }
.rk-hero .rk-search { margin-left: 0; margin-right: auto; }
.rk-hero .rk-suggested { justify-content: flex-start; }

/* Nav group right-aligned, cart last */
.rk-header .navbar.navbar .rk-nav { flex: 1 1 auto; justify-content: flex-end; }

/* Hero: banner in full, copy directly beneath — authoritative layout */
.rk-hero.rk-hero { display: block; min-height: 0; overflow: visible; background: none; }
.rk-hero.rk-hero .rk-hero__img { position: static; display: block; width: 100%; height: auto; margin: 0; }
.rk-hero.rk-hero .rk-hero__tint { display: none; }
.rk-hero.rk-hero .rk-hero__content { position: static; display: block; width: 100%; max-width: 1400px; margin: 0 auto; padding: 34px 40px 52px; }
.rk-hero.rk-hero .rk-hero__panel { width: min(620px, 100%); }
.rk-hero.rk-hero h1 { max-width: 22ch; }
.rk-hero.rk-hero .lead-line { max-width: 46ch; }

/* Copy overlays the banner's cream wedge (full banner still visible, nothing cropped) */
.rk-hero.rk-hero { position: relative; }
.rk-hero.rk-hero .rk-hero__content { background: none; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 0 40px; }
.rk-hero.rk-hero .rk-hero__panel { width: min(38%, 500px); }
.rk-hero.rk-hero h1 { font-size: clamp(24px, 2.6vw, 46px); max-width: 16ch; margin-bottom: 14px; }
.rk-hero.rk-hero .lead-line { font-size: clamp(12px, 1.05vw, 15px); max-width: 32ch; margin-bottom: 22px; }
.rk-hero.rk-hero .rk-search { max-width: min(340px, 100%); }
@media (max-width: 900px) {
  .rk-hero.rk-hero .rk-hero__content { position: static; padding: 30px 24px 44px; background: var(--cream); }
  .rk-hero.rk-hero .rk-hero__panel { width: 100%; }
  .rk-hero.rk-hero h1 { max-width: 22ch; }
}

/* Even hang: every work renders at the same height, so only width varies */
.rk-card .imgwrap { align-items: flex-end; }
.rk-card .imgwrap img { height: 100%; width: auto; max-width: 100%; max-height: 100%; object-fit: contain; }

/* Nav dropdown — two-column panel with descriptions and a featured work */
.rk-drop__inner { display: flex; gap: 26px; padding: 22px 24px 20px; }
.rk-drop__list { flex: 1 1 auto; min-width: 244px; }
.rk-drop ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rk-drop ul a { display: block; padding: 10px 12px; border-radius: 3px; color: var(--ink); transition: background .2s ease, color .2s ease, padding-left .2s ease; }
.rk-drop ul a:hover { background: #FBF7EF; color: var(--bronze); padding-left: 16px; }
.rk-drop__label { display: block; font-family: 'Playfair Display', serif; font-size: 16.5px; line-height: 1.25; }
.rk-drop__desc { display: block; margin-top: 3px; font-size: 11.5px; letter-spacing: .01em; color: var(--soft); }
.rk-drop ul a:hover .rk-drop__desc { color: #8A7A5E; }
.rk-drop__all { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 12px 12px 4px; border-top: 1px solid var(--hairline); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--bronze); }
.rk-drop__all em { font-style: normal; transition: transform .25s ease; display: inline-block; }
.rk-drop__all:hover { color: var(--bronze-dark); }
.rk-drop__all:hover em { transform: translateX(4px); }

/* Dropdown: single column, kept within the viewport */
.rk-navitem { position: relative; }
.rk-drop__inner { display: block; padding: 14px 12px 10px; }
.rk-drop__list { min-width: 236px; }
/* the last trigger opens leftwards so it never runs off the edge */

/* Nav dropdown — single source of truth for the panel */
.rk-navitem { position: relative; }
.rk-drop {
  position: absolute; top: 100%; left: 0; z-index: 70;
  width: max-content; max-width: min(320px, calc(100vw - 32px));
  background: #FBF7EF; border: 1px solid var(--hairline);
  box-shadow: 0 18px 40px -24px rgba(29,25,21,.45);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.rk-navitem.open .rk-drop { opacity: 1; visibility: visible; transform: translateY(0); }
/* the last menu opens leftwards so it never runs past the viewport */
.rk-navitem:last-of-type .rk-drop { left: auto; right: 0; }

/* Nav dropdown on tablet/mobile — the drawer expands the submenu inline */
@media (max-width: 991px) {
  .rk-drop { display: none; position: static; opacity: 1; visibility: visible; transform: none;
    width: auto; max-width: none; border: none; box-shadow: none; background: transparent; }
  .rk-navitem.open .rk-drop { display: block; }
  .rk-navitem { display: block; width: 100%; }
  .rk-drop__inner { padding: 0 0 10px; }
  .rk-drop__list { min-width: 0; }
  .rk-drop ul a { padding: 11px 0 11px 14px; border-bottom: 1px solid var(--hairline); border-radius: 0; }
  .rk-drop ul a:hover { padding-left: 14px; background: none; }
  .rk-drop__label { font-size: 15px; }
  .rk-drop__all { padding-left: 14px; }
}

/* Commission cards are clickable */
.rk-card.is-clickable { cursor: pointer; }
.rk-card.is-clickable .imgwrap img { transition: transform .6s cubic-bezier(.2,.6,.2,1), filter .4s ease; }
.rk-card.is-clickable:hover .imgwrap img { transform: translateY(-6px) scale(1.015); }
.rk-card.is-clickable:hover .title { color: var(--bronze); }
.rk-card.is-clickable:focus-visible { outline: 2px solid var(--bronze); outline-offset: 6px; }

/* Project detail overlay */
.rk-proj-lb { position: fixed; inset: 0; z-index: 220; background: rgba(23,19,15,.86); display: flex; align-items: center; justify-content: center; padding: 40px 24px; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.rk-proj-lb.open { opacity: 1; visibility: visible; }
.rk-proj-lb__inner { display: flex; gap: 0; align-items: stretch; background: var(--cream); max-width: min(1040px, 96vw); max-height: 88vh; overflow: hidden; }
.rk-proj-lb__img { flex: 1 1 auto; min-width: 0; background: #EFE9DC; display: flex; align-items: center; justify-content: center; }
.rk-proj-lb__img img { max-width: 100%; max-height: 88vh; object-fit: contain; display: block; }
.rk-proj-lb__meta { flex: 0 0 320px; padding: 40px 34px; overflow-y: auto; }
.rk-proj-lb__meta h3 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 26px; margin: 0 0 4px; color: var(--ink); }
.rk-proj-lb__cta { display: inline-block; margin-top: 28px; }
.rk-proj-lb__close { position: absolute; top: 20px; right: 28px; background: none; border: none; font-size: 38px; line-height: 1; color: #F6F2E9; cursor: pointer; opacity: .85; }
.rk-proj-lb__close:hover { opacity: 1; }
@media (max-width: 860px) {
  .rk-proj-lb__inner { flex-direction: column; max-height: 92vh; overflow-y: auto; }
  .rk-proj-lb__meta { flex: none; padding: 26px 22px 30px; }
  .rk-proj-lb__img img { max-height: 46vh; }
}

.rk-proj-lb__desc { font-size: 15.5px; line-height: 1.7; color: #4A4438; margin: 12px 0 0; }

/* Magnifier inside the project overlay */
.rk-proj-lb__img { position: relative; cursor: crosshair; }
.rk-proj-lb__img img { -webkit-user-drag: none; user-select: none; }
.rk-proj-lb__lens { position: absolute; pointer-events: none; border-radius: 50%; border: 1px solid rgba(150,117,74,.6); box-shadow: 0 12px 34px -12px rgba(0,0,0,.6); background-repeat: no-repeat; opacity: 0; transition: opacity .18s ease; z-index: 6; }
.rk-proj-lb__lens.on { opacity: 1; }

/* Image protection — no direct opening, dragging or saving of artwork images */
img { -webkit-user-drag: none; -khtml-user-drag: none; -moz-user-drag: none; -o-user-drag: none; user-drag: none; -webkit-touch-callout: none; }
.rk-card .imgwrap img, .rk-pick .thumb .bg, .rk-stage img, .rk-proj-lb__img img,
.rk-cart-thumb img, .cp-thumb img, .rk-hero__img, .step-photo img, .rk-cat-tile .bg {
  -webkit-user-select: none; -moz-user-select: none; user-select: none; pointer-events: none;
}
/* keep the wrappers interactive so clicks, hover lift and the lens still work */
.rk-card .imgwrap, .rk-pick .thumb, .rk-stage, .rk-proj-lb__img, .rk-cat-tile { pointer-events: auto; }

/* ============================================================
   MOBILE REFINEMENTS
   ============================================================ */

/* ---- Tablet ---- */
@media (max-width: 991px) {
  .rk-section { padding-top: 56px; padding-bottom: 56px; }
  .rk-page-hero { padding-top: 40px; padding-bottom: 8px; }
  .rk-page-hero h1 { font-size: clamp(30px, 5.2vw, 44px); }
  .rk-page-hero .sub { font-size: 14.5px; }
  /* comfortable tap targets throughout */
  .rk-nav a, .rk-chip, .rk-pill, .rk-price-box, .btn-bronze, .rk-act-btn, .rk-aq button, .rk-filter select { min-height: 44px; }
  .rk-chip, .rk-pill { display: inline-flex; align-items: center; }
  .rk-cart-btn { min-width: 44px; min-height: 44px; justify-content: center; }
  .rk-burger { min-width: 44px; min-height: 44px; }
}

/* ---- Phone ---- */
@media (max-width: 767px) {
  .rk-section { padding-top: 44px; padding-bottom: 44px; }
  .rk-h2 { font-size: 22px; }
  .rk-overline { font-size: 10px; letter-spacing: .24em; }

  /* header */
  .rk-header .navbar.navbar { padding: 12px 18px; min-height: 64px; }
  .rk-header .rk-brand img { height: 42px !important; }
  .rk-header.rk-scrolled .rk-brand img { height: 38px !important; }

  /* filters stack into a readable column */
  .rk-filterbar { flex-direction: column; align-items: stretch; gap: 16px; padding: 16px 0; }
  .rk-chips { gap: 8px; }
  .rk-chip { font-size: 11px; padding: 10px 14px; }
  .rk-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .rk-filter { width: 100%; }
  .rk-filter select { width: 100%; }
  .rk-count { align-self: flex-start; }

  /* gallery cards */
  .rk-masonry { gap: 26px 18px; }
  .rk-card figcaption { margin-top: 16px; padding-top: 11px; }
  .rk-card .title { font-size: 16px; }
  .rk-card .price { font-size: 13.5px; }
  .rk-card .cap-meta { font-size: 11.5px; }
  .rk-card .cap-icons { opacity: 1; }

  /* artwork detail */
  .rk-detail { flex-direction: column; gap: 0; }
  .rk-stage { height: clamp(340px, 58vh, 460px); }
  .rk-detail-actions { flex-wrap: wrap; gap: 18px; padding-top: 16px; }
  .rk-detail .col-lg-5 > div { position: static !important; padding-left: 0 !important; }
  .proj-meta { grid-template-columns: 96px 1fr; gap: 6px 14px; font-size: 14px; }
  .proj-meta dt { font-size: 11px; }
  .proj-meta dd { font-size: 14.5px; }

  /* horizontal rows: full-bleed, snap, no arrows on touch */
  .rk-picks { gap: 18px; padding-left: 18px; padding-right: 18px; scroll-snap-type: x mandatory; }
  .rk-pick { flex: 0 0 68vw !important; scroll-snap-align: start; }
  .rk-pick .thumb { height: 240px; }
  .rk-scroll-arrow { display: none; }
  .rk-cats { gap: 12px; padding: 16px 0 16px 18px; scroll-snap-type: x mandatory; }
  .rk-cat-tile { scroll-snap-align: start; }

  /* cart */
  .cp-wrap { padding: 36px 18px 64px; }
  .cp-thumb { flex: 0 0 68px; height: 68px; }
  .cp-name { font-size: 17px; }
  .cp-totals { padding: 26px 22px; }

  /* project overlay */
  .rk-proj-lb { padding: 0; }
  .rk-proj-lb__inner { max-width: 100vw; max-height: 100vh; height: 100%; }
  .rk-proj-lb__close { top: 12px; right: 16px; font-size: 34px; z-index: 3; }

  /* footer */
  .rk-footer .inner { padding: 48px 18px 30px; }
  .rk-newsletter { flex-direction: column; align-items: flex-start; gap: 16px; padding-bottom: 34px; margin-bottom: 34px; }
  .rk-newsletter form { width: 100%; }
  .rk-newsletter input { width: 100%; }
  .rk-footer .socials { flex-wrap: wrap; gap: 12px 18px; }

  /* forms */
  input, select, textarea { font-size: 16px !important; } /* stops iOS zoom-on-focus */
}

/* ---- Small phone ---- */
@media (max-width: 480px) {
  .rk-filters { grid-template-columns: 1fr; }
  .rk-pick { flex: 0 0 78vw !important; }
  .rk-cat-tile { flex: 0 0 74vw !important; }
  .rk-page-hero h1 { font-size: 27px; }
  .rk-activeq { gap: 8px; }
  .rk-aq { font-size: 11.5px; padding: 6px 6px 6px 13px; }
}

/* ---- Touch devices: no hover-only affordances ---- */
@media (hover: none) {
  .rk-lens, .rk-proj-lb__lens { display: none !important; }
  .rk-card .cap-icons { opacity: 1; }
  .pillar-cta { opacity: 1; transform: none; }
}

@media (max-width: 767px) {
  .rk-filterbar > .d-flex { flex-wrap: wrap; width: 100%; gap: 10px 14px !important; }
  .rk-filterbar #searchInput { width: 100% !important; order: -1; padding: 10px 2px !important; }
  .rk-price-select { flex: 1 1 auto; }
}

/* Single-column grid: align the work to the caption's left edge, not the card centre */
@media (max-width: 575px) {
  .rk-card .imgwrap { justify-content: flex-start; height: 300px; padding: 0; }
  .rk-card .imgwrap img { height: 100%; width: auto; max-width: 100%; }
  .rk-card figcaption { text-align: left; }
  .rk-card .cap-top { justify-content: space-between; gap: 16px; }
  .rk-card .cap-bottom { justify-content: space-between; }
  .rk-masonry { gap: 34px 0; }
}

/* Larger banner presence on phones */
@media (max-width: 900px) {
  .rk-hero.rk-hero .rk-hero__img { min-height: 46vh; object-fit: cover; object-position: 72% center; }
}
@media (max-width: 575px) {
  .rk-hero.rk-hero .rk-hero__img { min-height: 52vh; object-position: 78% center; }
}

/* Keep prices and captions inside the card on phones */
@media (max-width: 767px) {
  .rk-masonry, .rk-card, .rk-card figcaption { min-width: 0; max-width: 100%; }
  .rk-card .cap-top { flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
  .rk-card .cap-top > a { flex: 1 1 auto; min-width: 0; }
  .rk-card .title { overflow-wrap: anywhere; }
  .rk-card .price { flex: 0 0 auto; white-space: nowrap; }
  .rk-card .cap-bottom { flex-wrap: wrap; gap: 6px 12px; }
  .rk-card .cap-meta { flex: 1 1 100%; min-width: 0; overflow-wrap: anywhere; }
  .rk-card .cap-icons { flex: 0 0 auto; }
}
@media (max-width: 575px) {
  /* the work sits full-width in one column, so nothing can push the caption wider */
  .rk-card .imgwrap { width: 100%; }
  .rk-card .cap-top { flex-direction: row; justify-content: space-between; }
  .rk-card .price { font-size: 14px; }
}

/* Breathing room between the mockup rail and the artwork on mobile */
@media (max-width: 991px) {
  .rk-detail { gap: 0; }
  .rk-thumbs { margin-bottom: 22px; padding-bottom: 4px; }
  .rk-stage { margin-top: 8px; }
}
@media (max-width: 575px) {
  .rk-thumbs { margin-bottom: 26px; }
}

/* Two-column tablet grid: guarantee the gutter and stop captions colliding */
@media (max-width: 991px) {
  .rk-masonry { gap: 34px 28px; }
  .rk-masonry > .rk-card { min-width: 0; }
  .rk-card figcaption { min-width: 0; }
  .rk-card .cap-top { flex-wrap: wrap; gap: 2px 12px; }
  .rk-card .cap-top > a { flex: 1 1 100%; min-width: 0; }
  .rk-card .title { overflow-wrap: anywhere; }
  .rk-card .price { flex: 0 0 auto; }
  .rk-card .cap-meta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (max-width: 575px) {
  .rk-masonry { gap: 34px 0; }
  .rk-card .cap-top > a { flex: 1 1 auto; }
  .rk-card .cap-meta { white-space: normal; }
}

/* ============================================================
   ARTWORK CARD — one standard treatment at every width
   Image sits in a fixed-height frame; caption is a two-line
   block: title + price, then meta + actions. Nothing overlaps.
   ============================================================ */
.rk-masonry { gap: 34px 28px; }
.rk-masonry > .rk-card { min-width: 0; }
.rk-card, .rk-card figcaption { min-width: 0; max-width: 100%; }
.rk-card .imgwrap { justify-content: center; }
.rk-card figcaption { text-align: left; margin-top: 20px; padding-top: 12px; }
.rk-card .cap-top { display: flex; flex-wrap: nowrap; align-items: baseline; justify-content: space-between; gap: 14px; }
.rk-card .cap-top > a { flex: 1 1 auto; min-width: 0; }
.rk-card .title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk-card .price { flex: 0 0 auto; white-space: nowrap; }
.rk-card .cap-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 5px; }
.rk-card .cap-meta { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk-card .cap-icons { flex: 0 0 auto; }

@media (max-width: 991px) { .rk-masonry { gap: 32px 24px; } }
@media (max-width: 575px) {
  .rk-masonry { gap: 32px 0; }
  .rk-card .imgwrap { justify-content: flex-start; height: 300px; }
}

/* Price sits on its own line under the title, at every width */
.rk-card .cap-top { display: block; }
.rk-card .cap-top > a { display: block; }
.rk-card .title { white-space: normal; overflow-wrap: anywhere; overflow: visible; text-overflow: clip; }
.rk-card .price { display: block; margin-top: 4px; }
.rk-card .cap-bottom { align-items: flex-start; margin-top: 8px; }
.rk-card .cap-meta { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.5; }
@media (max-width: 991px) { .rk-card .cap-meta { white-space: normal; } }

/* Hard guard: a work can never spill outside its own card */
.rk-card .imgwrap { overflow: hidden; max-width: 100%; }
.rk-card .imgwrap img { max-width: 100% !important; max-height: 100% !important; width: auto; height: 100%; object-fit: contain; }
@media (max-width: 575px) { .rk-card .imgwrap img { height: 100%; width: auto; } }

/* ============================================================
   ARTWORK CARD — final, authoritative definition
   A padded frame of fixed height; the work is contained inside
   it and can never touch or cross the card edge.
   ============================================================ */
.rk-masonry {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 30px;
}
.rk-masonry > .rk-card { min-width: 0; overflow: hidden; }

.rk-card .imgwrap {
  position: relative;
  width: 100%;
  height: 320px;
  padding: 0 16px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  background: transparent;
  box-sizing: border-box;
}
.rk-card .imgwrap img {
  display: block;
  width: auto !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain;
}

.rk-card figcaption { text-align: left; margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--hairline); }
.rk-card .cap-top { display: block; }
.rk-card .title { display: block; font-size: 17px; line-height: 1.3; white-space: normal; overflow-wrap: anywhere; }
.rk-card .price { display: block; margin-top: 5px; font-size: 14.5px; }
.rk-card .cap-bottom { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 8px; }
.rk-card .cap-meta { flex: 1 1 auto; min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.5; }
.rk-card .cap-icons { flex: 0 0 auto; }

@media (max-width: 1199px) { .rk-masonry { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px)  { .rk-masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 22px; } .rk-card .imgwrap { height: 280px; } }

/* One work at a time on phones — full width, generous and clean */
@media (max-width: 640px) {
  .rk-masonry { grid-template-columns: minmax(0, 1fr); gap: 40px 0; }
  .rk-card .imgwrap { height: 62vh; max-height: 460px; padding: 0; align-items: center; }
  .rk-card figcaption { margin-top: 16px; }
  .rk-card .title { font-size: 19px; }
  .rk-card .price { font-size: 16px; }
}

/* Mobile header: burger left, logo centred, cart right */
@media (max-width: 991px) {
  .rk-header .navbar.navbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 16px; }
  .rk-header .navbar.navbar .rk-burger { order: 1; flex: 0 0 44px; margin: 0; }
  .rk-header .navbar.navbar .rk-brand { order: 2; flex: 1 1 auto; display: flex; justify-content: center; align-items: center; }
  .rk-header .navbar.navbar .rk-cart-btn { order: 3; flex: 0 0 44px; margin-left: 0 !important; justify-content: flex-end; }
  .rk-header .navbar.navbar .rk-nav { order: 4; }
  .rk-header .rk-brand img { height: 46px !important; }
}
@media (max-width: 480px) {
  .rk-header .navbar.navbar { padding: 8px 12px; }
  .rk-header .rk-brand img { height: 40px !important; }
}

/* Mobile drawer: open from the left, content starting at the top */
@media (max-width: 991px) {
}

/* Drawer: start the links right under the header, with +/- expanders */
@media (max-width: 991px) {
  .rk-navitem { position: relative; }
  .rk-navitem__toggle {
    position: absolute; top: 0; right: 0; width: 48px; height: 48px;
    display: flex; align-items: center; justify-content: center;
    background: none; border: none; cursor: pointer; padding: 0; z-index: 2;
  }
  .rk-navitem__toggle span { position: absolute; background: var(--bronze); transition: transform .28s ease, opacity .28s ease; }
  .rk-navitem__toggle span:first-child { width: 14px; height: 1.5px; }
  .rk-navitem__toggle span:last-child { width: 1.5px; height: 14px; }
  .rk-navitem.open .rk-navitem__toggle span:last-child { transform: rotate(90deg); opacity: 0; }
  .rk-navitem.open > a { color: var(--bronze) !important; }
  /* leave room for the toggle so long labels don't run under it */
  .rk-navitem > a { padding-right: 52px !important; }
}
@media (min-width: 992px) { .rk-navitem__toggle { display: none; } }

/* Mobile drawer — single definition, links packed to the top */
@media (max-width: 991px) {
  .rk-header .navbar.navbar .rk-nav {
    position: fixed; top: 0; left: 0; right: auto;
    height: 100vh; width: min(320px, 82vw);
    background: var(--cream);
    flex-direction: column; flex-wrap: wrap;
    align-items: flex-start; justify-content: flex-start;
    gap: 0; padding: 22px 22px 40px;
    transform: translateX(-100%);
    transition: transform .38s cubic-bezier(.2,.6,.2,1);
    box-shadow: 20px 0 50px -20px rgba(29,25,21,.4);
    overflow-y: auto; z-index: 65;
  }
  .rk-nav-open .rk-header .navbar.navbar .rk-nav,
  .rk-header.rk-nav-open .navbar.navbar .rk-nav { transform: translateX(0); }
}

/* ============================================================
   MOBILE DRAWER — clean, single-level rows with inline submenus
   ============================================================ */
@media (max-width: 991px) {
  .rk-header .navbar.navbar .rk-nav { padding: 76px 0 40px; gap: 0; }

  /* every top-level entry is a full-width row */
  .rk-nav > a,
  .rk-nav .rk-navitem { display: block; width: 100%; }
  .rk-nav .rk-navitem { position: relative; }

  .rk-nav > a,
  .rk-nav .rk-navitem > a {
    display: flex; align-items: center;
    width: 100%; min-height: 54px;
    margin: 0 !important;
    padding: 0 62px 0 22px !important;
    font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
    color: var(--ink) !important;
    border-bottom: 1px solid var(--hairline);
    background: none;
  }
  .rk-nav > a:last-of-type { border-bottom: 1px solid var(--hairline); }
  .rk-nav .btn-enquire { border-radius: 0 !important; border: none !important; border-bottom: 1px solid var(--hairline) !important; }

  /* the +/- sits on the row's own line */
  .rk-navitem__toggle { top: 0; right: 8px; width: 54px; height: 54px; }

  /* submenu: compact, indented, no descriptions or nested rules */
  .rk-navitem .rk-drop { border: none; background: #FBF7EF; box-shadow: none; }
  .rk-navitem .rk-drop__inner { padding: 6px 0; }
  .rk-navitem .rk-drop__list { min-width: 0; }
  .rk-navitem .rk-drop ul { display: block; }
  .rk-navitem .rk-drop ul a {
    display: block; padding: 12px 22px 12px 38px !important;
    border-bottom: none; background: none; border-radius: 0;
  }
  .rk-navitem .rk-drop ul a:hover { background: none; padding-left: 38px !important; }
  .rk-navitem .rk-drop__label { font-family: 'Jost', sans-serif; font-size: 14px; font-weight: 400; letter-spacing: .02em; text-transform: none; color: #57503F; }
  .rk-navitem .rk-drop ul a:hover .rk-drop__label { color: var(--bronze); }
  .rk-navitem .rk-drop__desc { display: none; }
  .rk-navitem .rk-drop__all {
    margin: 4px 0 8px; padding: 12px 22px 12px 38px;
    border-top: none; font-size: 10px; letter-spacing: .2em;
  }
}

/* Mobile header: equal breathing room on both edges */
@media (max-width: 991px) {
  .rk-header .navbar.navbar { padding-left: 14px; padding-right: 14px; }
  .rk-header .navbar.navbar .rk-burger { margin-left: 0; }
  .rk-header .navbar.navbar .rk-cart-btn { margin-right: 4px; padding-right: 0; }
}
@media (max-width: 480px) {
  .rk-header .navbar.navbar { padding-left: 12px; padding-right: 12px; }
  .rk-header .navbar.navbar .rk-cart-btn { margin-right: 2px; }
}

/* Project overlay on mobile: full-screen sheet, image and text share one centred column */
@media (max-width: 860px) {
  .rk-proj-lb { padding: 0; align-items: stretch; }
  .rk-proj-lb__inner { flex-direction: column; width: 100%; max-width: 100%; height: 100%; max-height: 100%; overflow-y: auto; }
  .rk-proj-lb__img { flex: 0 0 auto; width: 100%; padding: 64px 22px 26px; background: var(--cream); box-sizing: border-box; }
  .rk-proj-lb__img img { max-height: 52vh; margin: 0 auto; }
  .rk-proj-lb__meta { flex: 1 1 auto; width: 100%; padding: 26px 22px 40px; border-top: 1px solid var(--hairline); box-sizing: border-box; }
  .rk-proj-lb__meta h3 { font-size: 24px; }
  .rk-proj-lb__meta .proj-meta { grid-template-columns: 96px 1fr; }
  .rk-proj-lb__cta { display: block; width: 100%; text-align: center; margin-top: 24px; }
  .rk-proj-lb__close { top: 12px; right: 12px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; padding: 0; font-size: 32px; line-height: 1; color: var(--ink); z-index: 3; }
}

/* Mobile overlay: a tappable dismissal strip below the sheet as a fallback */
@media (max-width: 860px) {
  .rk-proj-lb__meta::after {
    content: 'Close';
    display: block; margin-top: 22px; padding: 14px 0;
    text-align: center; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase;
    color: var(--soft); border-top: 1px solid var(--hairline); cursor: pointer;
  }
}

/* Homepage rows become a tidy grid on mobile — no sideways scrolling */
@media (max-width: 767px) {
  .rk-picks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 16px;
    overflow-x: visible;
    padding: 0 18px 4px;
    scroll-snap-type: none;
    cursor: default !important;
  }
  .rk-picks > .rk-pick { flex: none !important; width: auto; min-width: 0; scroll-snap-align: none; }
  .rk-pick .thumb { height: 190px; }
  .rk-pick .pick-cap { margin-top: 14px; padding-top: 10px; }
  .rk-pick .pick-cap .title { font-size: 15.5px; }
  .rk-pick .pick-cap .price { font-size: 14px; }
  .rk-pick .pick-cap .cap-meta { font-size: 11.5px; }
  .rk-scrollwrap .rk-scroll-arrow { display: none !important; }
}
@media (max-width: 420px) {
  .rk-picks { grid-template-columns: minmax(0, 1fr); gap: 30px 0; }
  .rk-pick .thumb { height: 260px; }
}

/* Homepage commission teasers read as clickable */
#commissions-row .rk-pick.is-clickable { cursor: pointer; }
#commissions-row .rk-pick.is-clickable:hover .title { color: var(--bronze); }
#commissions-row .rk-pick.is-clickable:focus-visible { outline: 2px solid var(--bronze); outline-offset: 6px; }

/* Project overlay on mobile — compact sheet, everything visible without scrolling */
@media (max-width: 860px) {
  .rk-proj-lb__inner { background: var(--cream); }
  .rk-proj-lb__img { padding: 56px 18px 20px; }
  .rk-proj-lb__img img { max-height: 44vh; width: auto; }
  .rk-proj-lb__meta { padding: 22px 18px 28px; }
  .rk-proj-lb__meta h3 { font-size: 22px; margin-bottom: 8px; }
  .rk-proj-lb__desc { font-size: 14.5px; margin-top: 8px; }
  .rk-proj-lb__meta .proj-meta { grid-template-columns: 84px 1fr; gap: 5px 14px; font-size: 14px; }
  .rk-proj-lb__meta .proj-meta dt { font-size: 10.5px; }
  .rk-proj-lb__meta .proj-meta dd { font-size: 14px; }
  .rk-proj-lb__cta { margin-top: 20px; padding: 15px 24px; font-size: 11px; }
  /* the 44px X is the single close control — drop the duplicate strip */
  .rk-proj-lb__meta::after { display: none; }
  .rk-proj-lb__close {
    top: 10px; right: 10px; width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px; color: var(--ink); background: rgba(246,242,233,.9);
    border-radius: 50%; z-index: 4;
  }
}

/* Project overlay on mobile — sheet hugs its content, image fills the width */
@media (max-width: 860px) {
  .rk-proj-lb { align-items: center; padding: 18px 0; }
  .rk-proj-lb__inner { height: auto; max-height: calc(100vh - 36px); overflow-y: auto; }
  .rk-proj-lb__img { padding: 44px 16px 18px; }
  .rk-proj-lb__img img { width: 100%; height: auto; max-height: 52vh; object-fit: contain; }
  .rk-proj-lb__meta { padding: 20px 18px 26px; }
  .rk-proj-lb__cta { margin-top: 18px; }
}

/* Season's picks — uniform frame so every work reads at the same scale */
.rk-pick .thumb { height: 300px; padding: 0; display: flex; align-items: center; justify-content: center; }
.rk-pick .thumb .bg { width: 100%; height: 100%; background-size: contain; background-repeat: no-repeat; background-position: center; }

/* Season's picks: fill the frame height so every work reads at one scale
   (contain made wider works sit shorter than narrow ones) */
.rk-pick .thumb { overflow: hidden; }
.rk-pick .thumb .bg { background-size: auto 100%; }

/* Drag-scroll rows: never let the browser drag the tiles or their images */
.rk-cats, .rk-picks { -webkit-user-select: none; user-select: none; }
.rk-cat-tile, .rk-cat-tile .bg, .rk-cats img, .rk-picks img { -webkit-user-drag: none; user-drag: none; }
.rk-cats:active, .rk-picks:active { cursor: grabbing; }

/* Selected Projects: uniform frames so the row reads as an even hang */
#selected-projects .rk-masonry { gap: 34px 26px; }
#selected-projects .rk-card .imgwrap {
  height: 300px; padding: 0;
  align-items: center; justify-content: center;
  background: #EFE9DC; overflow: hidden;
}
#selected-projects .rk-card .imgwrap img {
  width: 100% !important; height: 100% !important;
  max-width: none !important; max-height: none !important;
  object-fit: cover; object-position: center;
  filter: none;
}
#selected-projects .rk-card figcaption { margin-top: 14px; padding-top: 11px; }
#selected-projects .rk-card .title { font-size: 16.5px; }
@media (max-width: 900px) { #selected-projects .rk-card .imgwrap { height: 250px; } }
@media (max-width: 640px) { #selected-projects .rk-card .imgwrap { height: 280px; } }

/* Selected Projects — editorial plate treatment */
#selected-projects .proj-index {
  font-size: 10px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--bronze); margin: 0 0 5px;
}
#selected-projects .rk-card .title { margin-bottom: 10px; }
#selected-projects .rk-card .proj-meta { margin-top: 0; }
#selected-projects .rk-card { cursor: pointer; }
#selected-projects .rk-card .imgwrap { transition: box-shadow .4s ease; }
#selected-projects .rk-card:hover .imgwrap { box-shadow: 0 20px 40px -24px rgba(29,25,21,.42); }
#selected-projects .rk-card .imgwrap img { transition: transform .8s cubic-bezier(.2,.6,.2,1); }
#selected-projects .rk-card:hover .imgwrap img { transform: scale(1.04); }

/* Nav bar colour from the supplied swatch (homepage included) */
.rk-header, .rk-header.rk-scrolled, .rk-header--solid {
  background-color: #FDF6E5 !important;
  background-image: none !important;
}

/* Hero copy — deeper brown */
.rk-hero h1 { color: #3A2712 !important; }
.rk-hero .lead-line { color: #4A3319 !important; }
.rk-hero .rk-search { border-bottom-color: rgba(58,39,18,.65) !important; }
.rk-hero .rk-search input { color: #3A2712 !important; }
.rk-hero .rk-search input::placeholder { color: #6E5334 !important; }
.rk-hero .rk-search button svg { stroke: #3A2712 !important; }
.rk-hero .rk-suggested .label { color: #6E5334 !important; }
.rk-hero .rk-suggested button { color: #3A2712 !important; border-bottom-color: rgba(58,39,18,.5) !important; }
.rk-hero .rk-suggested button:hover { color: #96754A !important; }

/* Load-more control */
.rk-loadmore { text-align: center; padding: 44px 0 8px; }
.rk-loadmore__count { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--soft); margin: 0 0 18px; }
.rk-loadmore .btn-bronze { border-radius: 999px; }

/* Smooth loading: reserve each card's space, fade the work in when decoded */
.rk-card .imgwrap { contain: layout paint; }
/* Fade-in applies only to the JS-rendered gallery grid, which marks images as
   loaded. Static cards (project pages) must never be hidden by it. */
#masonry .rk-card .imgwrap img { opacity: 1; }
.rk-card .imgwrap img { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .rk-card .imgwrap img { transition: none; opacity: 1; }
}

/* Project plates: room between the caption and the next row */
#selected-projects .rk-masonry { gap: 64px 30px; }
#selected-projects .rk-card figcaption { padding-bottom: 4px; }
#selected-projects .rk-card .proj-meta { margin-bottom: 2px; }
@media (max-width: 900px) { #selected-projects .rk-masonry { gap: 52px 22px; } }
@media (max-width: 640px) { #selected-projects .rk-masonry { gap: 46px 0; } }

/* Artist suggestions under the search field */
.rk-suggest { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 80;
  background: #FDF6E5; border: 1px solid var(--hairline);
  box-shadow: 0 18px 40px -24px rgba(29,25,21,.45);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  max-height: 320px; overflow-y: auto; }
.rk-suggest.on { opacity: 1; visibility: visible; transform: translateY(0); }
.rk-suggest__label { font-size: 9.5px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--bronze); margin: 0; padding: 12px 16px 6px; }
.rk-suggest__item { display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  width: 100%; padding: 10px 16px; background: none; border: none; cursor: pointer; text-align: left;
  font-family: 'Jost', sans-serif; font-size: 14.5px; color: var(--ink); transition: background .18s ease, color .18s ease; }
.rk-suggest__item b { font-weight: 600; color: var(--bronze); }
.rk-suggest__item em { font-style: normal; font-size: 11.5px; color: var(--soft); flex: 0 0 auto; }
.rk-suggest__item:hover, .rk-suggest__item.on { background: #F6EFDC; }
.rk-suggest__item:last-child { margin-bottom: 8px; }

/* Suggestion rows need the same 44px minimum as every other tappable control */
@media (max-width: 991px) {
  .rk-suggest__item { min-height: 44px; padding-top: 12px; padding-bottom: 12px; font-size: 16px; align-items: center; }
  .rk-suggest__item em { font-size: 12.5px; }
  .rk-suggest { max-height: 60vh; }
}

/* Marks a search result that is a sculpture or mural rather than a painting */
.rk-card .cap-type { flex: 0 0 auto; margin: 0; align-self: center;
  font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--bronze); border: 1px solid var(--bronze); border-radius: 999px; padding: 3px 9px; }

/* Let the type badge drop to its own line rather than squeezing the caption */
.rk-card .cap-bottom { flex-wrap: wrap; row-gap: 6px; }
.rk-card .cap-meta { flex: 1 1 60%; }

/* Nav items with a submenu must behave like the plain links — a flex row here
   put the label and its dropdown panel side by side, squeezing the label away. */
.rk-header .navbar.navbar .rk-nav .rk-navitem { display: inline-flex; align-items: center; flex: 0 0 auto; }
@media (max-width: 991px) {
  .rk-header .navbar.navbar .rk-nav .rk-navitem {
    display: block !important; width: 100% !important; flex: 0 0 auto; position: relative;
  }
  .rk-header .navbar.navbar .rk-nav .rk-navitem > a { display: flex !important; width: 100% !important; }
  .rk-header .navbar.navbar .rk-nav .rk-drop { display: none; width: 100%; }
  .rk-header .navbar.navbar .rk-nav .rk-navitem.open .rk-drop { display: block; }
}
/* Narrow desktop windows: let the nav wrap instead of pushing items out of view */
@media (min-width: 992px) and (max-width: 1240px) {
  .rk-header .navbar.navbar { gap: 20px; }
  .rk-header .navbar.navbar .rk-nav { flex-wrap: wrap; gap: 8px 18px; }
  .rk-nav a { font-size: 11.5px; letter-spacing: .14em; }
}

/* ============================================================
   CATEGORY STRIP — all four categories always visible.
   It was a fixed-width horizontal scroller, so Murals and
   Artifacts sat off-screen on laptops and phones.
   ============================================================ */
.rk-cats {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  overflow-x: visible !important;
  padding: 24px 24px !important;
  scroll-snap-type: none !important;
  cursor: default !important;
}
.rk-cats > .rk-cat-tile {
  flex: none !important;
  width: auto;
  min-width: 0;
  scroll-snap-align: none !important;
}
.rk-scrollwrap:has(> .rk-cats) .rk-scroll-arrow { display: none !important; }

@media (max-width: 1100px) {
  .rk-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 18px !important; }
  .rk-cats > .rk-cat-tile { height: 110px; }
}
@media (max-width: 520px) {
  .rk-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px !important; }
  .rk-cats > .rk-cat-tile { height: 96px !important; }
  .rk-cat-tile .name { font-size: 13px; letter-spacing: .12em; }
}
