/*
Theme Name: Royce Coffee
Theme URI: https://royce.coffee
Author: Royce Coffee
Description: Custom block theme for Royce Coffee. Core WordPress blocks only, no page builder, no paid plugins.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: royce-coffee
*/

/* The layer of polish theme.json can't express. Colors come from theme.json presets. */

:root {
	--rc-navy: var(--wp--preset--color--navy);
	--rc-navy-deep: var(--wp--preset--color--navy-deep);
	--rc-green: var(--wp--preset--color--green);
	--rc-crimson: var(--wp--preset--color--crimson);
	--rc-choc: var(--wp--preset--color--chocolate);
	--rc-gold: var(--wp--preset--color--gold);
	--rc-gold-ink: var(--wp--preset--color--gold-ink);
	--rc-cream: var(--wp--preset--color--cream);
	--rc-line: var(--wp--preset--color--line);
	--rc-body: var(--wp--preset--color--body);
	--rc-gold-grad: linear-gradient(180deg, #E2C46E 0%, #C9A54C 55%, #A9852F 100%);
	--rc-cinzel: var(--wp--preset--font-family--cinzel);
	--rc-bodoni: var(--wp--preset--font-family--bodoni);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(a):focus-visible,
:where(button, input, select, textarea):focus-visible { outline: 2px solid var(--rc-gold); outline-offset: 3px; }
.wp-site-blocks > * { margin-block-start: 0; }
main.wp-block-group > .entry-content > * + * { margin-block-start: 0; }
.entry-content > .alignfull { margin-block-start: 0 !important; }

/* ---------- Shared type helpers ---------- */
.rc-eyebrow,
p.is-style-eyebrow {
	font-family: var(--rc-cinzel);
	font-size: 0.8125rem;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--rc-gold-ink);
	margin: 0;
}
.rc-dark .rc-eyebrow,
.rc-dark p.is-style-eyebrow { color: var(--rc-gold); }
.rc-rule { width: 80px; height: 1px; background: var(--rc-gold); border: 0; margin-left: auto !important; margin-right: auto !important; opacity: 1; }
.rc-dark,
.rc-dark :where(h1, h2, h3, h4, p) { color: #fff; }
.rc-dark a:where(:not(.wp-element-button)) { color: var(--rc-cream); }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-gold .wp-block-button__link {
	background: var(--rc-gold-grad);
	color: var(--rc-navy);
	font-weight: 600;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
.wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.6);
}
.wp-block-button.is-style-outline-gold .wp-block-button__link {
	background: transparent;
	color: #F4ECD6;
	border: 1px solid var(--rc-gold);
}
.wp-block-button .wp-block-button__link { min-height: 56px; display: inline-flex; align-items: center; transition: transform .15s ease, border-color .15s ease; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { border-color: var(--rc-gold); color: #fff; }

/* ---------- Header ---------- */
.rc-topbar {
	background: var(--rc-navy);
	color: var(--rc-cream);
	text-align: center;
	font-family: var(--rc-cinzel);
	font-size: 0.75rem;
	letter-spacing: 0.3em;
	padding: 11px 16px;
	margin: 0;
	border-bottom: 1px solid var(--rc-gold);
}
.rc-header { background: radial-gradient(120% 140% at 50% 0%, #16295C 0%, #0B1A3F 70%); }
.rc-nav {
	max-width: 1280px;
	margin: 0 auto;
	padding: 26px 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	border-bottom: 1px solid rgba(201, 165, 76, 0.35);
}
.rc-nav > * { margin: 0 !important; }
.rc-nav-links { font-family: var(--rc-cinzel); font-size: 0.75rem; letter-spacing: 0.24em; display: flex; flex-wrap: wrap; gap: 30px; }
.rc-nav-links a { color: #F4ECD6; text-decoration: none; }
.rc-nav-links a:hover { color: #E2C46E; }
.rc-wordmark { text-align: center; line-height: 1; }
.rc-wordmark a { text-decoration: none; display: inline-flex; flex-direction: column; align-items: center; }
.rc-wordmark .w1 { font-family: var(--rc-bodoni); font-size: 34px; font-weight: 500; letter-spacing: 0.34em; padding-left: 0.34em; color: #fff; }
.rc-wordmark .w2 { font-family: var(--rc-cinzel); font-size: 10px; letter-spacing: 0.7em; padding-left: 0.7em; color: var(--rc-gold); margin-top: 8px; }
.rc-nav .wp-block-button__link { min-height: 44px; padding: 0 22px; font-size: 0.75rem; }

/* ---------- Sections ---------- */
.rc-section { scroll-margin-top: 20px; }
.rc-hero {
	background: radial-gradient(120% 120% at 50% 0%, #0B1A3F 0%, #0B1A3F 40%, #060F27 100%);
	text-align: center;
}
.rc-hero h1 { color: #fff; letter-spacing: -0.01em; }
.rc-hero h1 em { color: var(--rc-cream); }
.rc-hero .rc-lede { color: #D5DBEA; font-size: clamp(1.125rem, 2vw, 1.375rem); max-width: 640px; margin-left: auto !important; margin-right: auto !important; }

.rc-pillars { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 40px; text-align: left; }
.rc-pillars > * { margin: 0 !important; }
.rc-pillar {
	padding: 36px 32px !important;
	border: 1px solid var(--rc-line);
	border-top: 4px solid var(--rc-navy);
	background: #fff;
	box-shadow: 0 18px 40px rgba(11, 26, 63, 0.08);
}
.rc-pillar > * { margin-block-start: 0.875rem !important; }
.rc-pillar > :first-child { margin-block-start: 0 !important; }
.rc-pillar p:not(.rc-eyebrow) { color: var(--rc-body); }
.rc-pillar.is-green { border-top-color: var(--rc-green); }
.rc-pillar.is-green h3 { color: var(--rc-green); }
.rc-pillar.is-crimson { border-top-color: var(--rc-crimson); }
.rc-pillar.is-crimson h3 { color: var(--rc-crimson); }

.rc-collection { background: linear-gradient(180deg, #fff 0%, #F7F5EF 100%); border-top: 1px solid var(--rc-line); }
.rc-tins { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; }
.rc-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rc-line); box-shadow: 0 24px 50px rgba(20, 17, 15, 0.10); }
.rc-stage { aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; border-bottom: 3px solid var(--rc-gold); }
.rc-stage.navy { background: radial-gradient(100% 100% at 50% 30%, #1E3470 0%, #0B1A3F 100%); }
.rc-stage.green { background: radial-gradient(100% 100% at 50% 30%, #23674A 0%, #0E3324 100%); }
.rc-stage.choc { background: radial-gradient(100% 100% at 50% 30%, #6A3E29 0%, #2E1A11 100%); }
.rc-tin { width: 46%; aspect-ratio: 3 / 4; border: 2px solid var(--rc-gold); box-shadow: inset 0 0 0 6px rgba(201, 165, 76, 0.25), 0 20px 40px rgba(0, 0, 0, 0.45); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.rc-tin.navy { background: #0B1A3F; } .rc-tin.green { background: #12422E; } .rc-tin.choc { background: #4A2A1C; }
.rc-tin .t1 { font-family: var(--rc-bodoni); font-size: 22px; letter-spacing: 0.3em; padding-left: 0.3em; color: #F0D98E; }
.rc-tin .t2 { width: 40%; height: 1px; background: var(--rc-gold); }
.rc-tin .t3 { font-family: var(--rc-cinzel); font-size: 11px; letter-spacing: 0.2em; color: #F4ECD6; }
.rc-card-body { padding: 30px 30px 34px; display: flex; flex-direction: column; gap: 10px; }
.rc-card-body .o { font-family: var(--rc-cinzel); font-size: 12px; letter-spacing: 0.3em; color: var(--rc-gold-ink); }
.rc-card-body h3 { margin: 0; font-family: var(--rc-bodoni); font-weight: 500; font-size: 32px; }
.rc-card-body p { margin: 0; font-size: 18px; color: var(--rc-body); }

.rc-gifting { background: radial-gradient(120% 120% at 20% 0%, #1B5A3E 0%, #12422E 50%, #0A2A1C 100%); }
.rc-gifting p:not(.rc-eyebrow) { color: #D6E4DB; }
.rc-giftbox {
	aspect-ratio: 3 / 2;
	background: radial-gradient(100% 100% at 50% 40%, #2A1A12 0%, #1A0F0A 100%);
	border: 1px solid var(--rc-gold);
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
}
.rc-giftbox .w1 { font-family: var(--rc-bodoni); font-size: clamp(34px, 4vw, 52px); letter-spacing: 0.34em; padding-left: 0.34em; color: #F0D98E; }
.rc-giftbox .w2 { font-family: var(--rc-cinzel); font-size: 12px; letter-spacing: 0.6em; padding-left: 0.6em; color: var(--rc-cream); }

.rc-list { background: radial-gradient(120% 140% at 50% 0%, #4A2A1C 0%, #2E1A11 55%, #1C0F09 100%); text-align: center; }
.rc-list p:not(.rc-eyebrow) { color: #E3D3C2; }

/* ---------- Private list form ---------- */
.rc-form { max-width: 620px; margin: 1rem auto 0; display: grid; gap: 12px; text-align: left; }
.rc-form .rc-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.rc-form label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rc-form input[type="text"],
.rc-form input[type="email"],
.rc-form select {
	width: 100%;
	min-height: 58px;
	padding: 0 20px;
	border: 1px solid var(--rc-gold);
	border-radius: 0;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font-family: inherit;
	font-size: 18px;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}
.rc-form select { background-image: linear-gradient(45deg, transparent 50%, #C9A54C 50%), linear-gradient(135deg, #C9A54C 50%, transparent 50%); background-position: calc(100% - 26px) 26px, calc(100% - 20px) 26px; background-size: 6px 6px; background-repeat: no-repeat; }
.rc-form select option { color: #14110F; }
.rc-form input::placeholder { color: #C9B6A2; }
.rc-form button {
	min-height: 58px;
	border: 0;
	background: var(--rc-gold-grad);
	color: #1C0F09;
	font-family: var(--rc-cinzel);
	font-weight: 600;
	font-size: 0.8125rem;
	letter-spacing: 0.22em;
	cursor: pointer;
}
.rc-form button:hover { filter: brightness(1.06); }
.rc-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.rc-fine { font-size: 15px !important; text-align: center; color: #C9B6A2 !important; margin: 4px 0 0; }
.rc-notice { max-width: 620px; margin: 1rem auto 0; padding: 18px 22px; border: 1px solid var(--rc-gold); font-size: 18px; }
.rc-notice.is-success { background: rgba(201, 165, 76, 0.12); color: #F4ECD6; }
.rc-notice.is-error { background: rgba(142, 27, 44, 0.35); color: #fff; }

/* ---------- Footer ---------- */
.rc-footer { background: var(--rc-navy-deep); color: #B9C2D8; border-top: 3px solid var(--rc-gold); }
.rc-foot {
	max-width: 1280px; margin: 0 auto; padding: 56px 24px;
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px;
	font-family: var(--rc-cinzel); font-size: 12px; letter-spacing: 0.16em;
}
.rc-foot > * { margin: 0 !important; }
.rc-foot .w1 { font-family: var(--rc-bodoni); font-size: 26px; letter-spacing: 0.34em; color: #fff; }
.rc-foot a { color: #E9D9A6; text-decoration: none; }
.rc-foot a:hover { color: #fff; }

/* ---------- Plain pages (privacy etc.) ---------- */
.rc-page-head { background: var(--rc-navy); }
.rc-page-head h1 { color: #fff; font-size: var(--wp--preset--font-size--xx-large); }
.rc-prose h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; }

@media (max-width: 720px) {
	.rc-nav { justify-content: center; padding: 20px 16px; }
	.rc-nav-links { order: 3; width: 100%; justify-content: center; gap: 20px; }
	.rc-nav .wp-block-buttons { display: none; }
	.rc-topbar { letter-spacing: 0.16em; font-size: 0.6875rem; }
	.rc-foot { flex-direction: column; text-align: center; }
}
