/* Faithful Frame storefront styles. Colors come from theme.json presets. */
:root {
	--ffc-stone: var(--wp--preset--color--stone);
	--ffc-paper: var(--wp--preset--color--paper);
	--ffc-ink: var(--wp--preset--color--ink);
	--ffc-muted: var(--wp--preset--color--muted);
	--ffc-rule: var(--wp--preset--color--rule);
	--ffc-gilt: var(--wp--preset--color--gilt);
	--ffc-gilt-soft: var(--wp--preset--color--gilt-soft);
	--ffc-nave: var(--wp--preset--color--nave);
	--ffc-radius: 3px;
}
body { -webkit-font-smoothing: antialiased; }
:where(h1, h2, h3) { text-wrap: balance; }
:focus-visible { outline: 2px solid var(--ffc-gilt); outline-offset: 3px; }

/* wordmark */
.ffc-mark { display: inline-flex; flex-direction: column; line-height: 1; color: var(--ffc-ink); text-decoration: none; }
.ffc-mark b { font-family: var(--wp--preset--font-family--display); font-weight: 400; font-size: 26px; letter-spacing: .04em; }
.ffc-mark small { font-size: 10.5px; letter-spacing: .38em; color: var(--ffc-muted); margin-top: 5px; padding-left: 2px; }
.ffc-mark--light, .ffc-mark--light b { color: #EEEDE6; }
.ffc-mark--light small { color: #8E938F; }
@media (max-width: 640px) { .ffc-mark b { font-size: 21px; } }

/* header */
.ffc-ann p { margin: 0; letter-spacing: .02em; }
.ffc-header .ffc-nav a { padding: 6px 0; border-bottom: 1px solid transparent; }
.ffc-header .ffc-nav a:hover { border-bottom-color: var(--ffc-gilt); color: var(--ffc-ink); }
.ffc-header .wp-block-navigation__submenu-container { border: 1px solid var(--ffc-rule) !important; background: var(--ffc-paper) !important; padding: 10px 6px !important; box-shadow: 0 18px 40px -20px rgba(0,0,0,.35); min-width: 230px !important; }
.ffc-header .wp-block-navigation__submenu-container a { border-bottom: 0; padding: 6px 12px !important; }
.ffc-icons .wp-block-search__button { background: none; color: var(--ffc-ink); padding: 8px; border: 0; }
.ffc-icons .wp-block-search__button svg { width: 22px; height: 22px; }

/* hero */
.ffc-hero h1 { color: #F4F2EA !important; }
.ffc-hero .ffc-lede { color: #D9D7CD; max-width: 40ch; }
.ffc-hero .wp-block-buttons { margin-top: 12px; }
.ffc-ghost .wp-block-button__link { background: transparent !important; color: #F4F2EA !important; border: 1px solid rgba(238,237,230,.55) !important; }
.ffc-ghost .wp-block-button__link:hover { border-color: #F4F2EA !important; }
@media (max-width: 640px) {
	.ffc-hero { min-height: 520px !important; align-items: flex-end !important; }
	.ffc-hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(11,13,12,.9) 0%, rgba(11,13,12,.5) 50%, rgba(11,13,12,.1) 80%) !important; }
	.ffc-hero img.wp-block-cover__image-background { object-position: 62% center !important; }
}

/* trust strip */
.ffc-trust { gap: 16px !important; }
.ffc-trust p { margin: 0; }
.ffc-trust-item { gap: 2px !important; padding-left: 14px; border-left: 2px solid var(--ffc-gilt); }

/* section heads */
.ffc-head { margin-bottom: 28px !important; align-items: flex-end; }
.ffc-head p { margin: 0; max-width: 56ch; }
.ffc-more a { border-bottom: 1px solid var(--ffc-gilt); padding-bottom: 2px; white-space: nowrap; font-size: .9375rem; }

/* collection tiles */
.ffc-collections { gap: 16px !important; }
.ffc-tile { gap: 6px !important; }
.ffc-tile p { margin: 0; }
.ffc-tile-img { margin: 0 0 4px !important; overflow: hidden; border-radius: var(--ffc-radius); }
.ffc-tile-img img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; transition: transform .5s ease; }
.ffc-tile:hover .ffc-tile-img img { transform: scale(1.04); }

/* newest products (WooCommerce block) */
.ffc-sec-new .wc-block-grid__products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 20px; margin: 0 !important; }
.ffc-sec-new .wc-block-grid__product { width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; }
@media (max-width: 1000px) { .ffc-sec-new .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ffc-sec-new .wc-block-grid__product { border: 0 !important; padding: 0 !important; text-align: left !important; }
.ffc-sec-new .wc-block-grid__product-image img { aspect-ratio: 1; object-fit: cover; border-radius: var(--ffc-radius); }
.ffc-sec-new .wc-block-grid__product-title { font-family: var(--wp--preset--font-family--body); font-size: 15px; font-weight: 500; margin: 10px 0 4px; }
.ffc-sec-new .wc-block-grid__product-price { font-size: 14px; color: var(--ffc-muted); }

/* panoramic */
.ffc-chips span { display: inline-block; border: 1px solid var(--ffc-rule); padding: 5px 10px; border-radius: 2px; margin: 0 4px 6px 0; font-variant-numeric: tabular-nums; }
.ffc-pano-img img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ffc-dark .wp-block-button__link { background: var(--ffc-ink) !important; color: var(--ffc-paper) !important; }
.ffc-dark .wp-block-button__link:hover { background: #2C3431 !important; }

/* rooms */
.ffc-rooms { gap: 16px !important; }
.ffc-room { border-radius: var(--ffc-radius); overflow: hidden; }
.ffc-room img.wp-block-cover__image-background { transition: transform .5s ease; }
.ffc-room:hover img.wp-block-cover__image-background { transform: scale(1.04); }
.ffc-room h3 a { color: #F4F2EA; }

/* custom verse */
.ffc-verse-card { position: relative; min-height: 320px; justify-content: center; border-radius: var(--ffc-radius); }
.ffc-verse-card::before { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(201,164,94,.45); pointer-events: none; }
.ffc-verse-text { font-family: var(--wp--preset--font-family--display); font-size: clamp(24px, 2.8vw, 34px); line-height: 1.3; margin: 0; }
.ffc-verse-cite { color: #C9A45E; letter-spacing: .05em; margin: 0; }

/* footer */
.ffc-footlinks { list-style: none; padding: 0; margin: 0; }
.ffc-footlinks li { padding: 3px 0; }
.ffc-footer a:hover { color: #EEEDE6 !important; }

/* responsive grids */
@media (max-width: 1000px) {
	.ffc-collections { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.ffc-rooms, .ffc-trust { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 640px) {
	.ffc-collections { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ffc-trust { grid-template-columns: 1fr !important; }
	.ffc-rooms .ffc-room { min-height: 260px !important; }
}

/* ---------- product page ---------- */
.single-product .product_title, .wp-block-post-title.wc-block-product-title { font-family: var(--wp--preset--font-family--display); }
.single-product .price, .single-product .wc-block-components-product-price { font-size: 1.75rem !important; font-weight: 600; font-variant-numeric: tabular-nums; }
.single-product table.variations select.ffc-hidden-select { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.single-product table.variations, .single-product table.variations tr, .single-product table.variations td, .single-product table.variations th { display: block; width: 100%; padding: 0; border: 0; text-align: left; }
.single-product table.variations th.label { margin: 22px 0 10px; font-weight: 600; font-size: 14px; }
.single-product .reset_variations { display: none !important; }
.ffc-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.ffc-choice { border: 1px solid var(--ffc-rule); background: var(--ffc-paper); color: var(--ffc-ink); border-radius: var(--ffc-radius); padding: 10px 14px; font: inherit; font-size: 14.5px; min-width: 84px; text-align: center; cursor: pointer; font-variant-numeric: tabular-nums; }
.ffc-choice:hover { border-color: var(--ffc-muted); }
.ffc-choice[aria-pressed="true"] { border-color: var(--ffc-ink); box-shadow: inset 0 0 0 1px var(--ffc-ink); }
.ffc-choice[disabled] { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.ffc-frames { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.ffc-frames-label { width: 100%; font-size: 14px; font-weight: 600; margin: 8px 0 -2px; }
.ffc-frames-label span { font-weight: 400; color: var(--ffc-muted); margin-left: 6px; }
.ffc-frame { background: none; border: 0; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ffc-muted); width: 66px; cursor: pointer; }
.ffc-frame i { width: 54px; height: 54px; border-radius: var(--ffc-radius); display: grid; place-items: center; border: 1px solid var(--ffc-rule); }
.ffc-frame i::after { content: ""; width: 30px; height: 30px; background: var(--ffc-stone); border-radius: 1px; }
.ffc-frame[aria-pressed="true"] { color: var(--ffc-ink); font-weight: 500; }
.ffc-frame[aria-pressed="true"] i { outline: 2px solid var(--ffc-ink); outline-offset: 2px; }
.single-product .single_add_to_cart_button { min-height: 52px; font-size: 16px !important; }
.ffc-ship { margin-top: 16px; padding: 14px 16px; background: var(--ffc-gilt-soft); border-radius: var(--ffc-radius); display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; }
.ffc-ship p { margin: 0; }
.ffc-ship svg { flex: none; width: 22px; height: 22px; stroke: var(--ffc-gilt); fill: none; stroke-width: 1.5; margin-top: 1px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* custom verse fields */
.ffc-personalize { margin: 22px 0 6px; display: grid; gap: 14px; }
.ffc-personalize label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.ffc-personalize select, .ffc-personalize textarea { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--ffc-rule); border-radius: var(--ffc-radius); background: var(--ffc-paper); color: var(--ffc-ink); }
.ffc-personalize textarea { min-height: 120px; resize: vertical; }
.ffc-personalize .ffc-help { font-size: 13px; color: var(--ffc-muted); margin: 6px 0 0; }

/* sale prices */
.ffc-from del, .price del { opacity: .55; font-weight: 400; margin-right: 4px; }
.ffc-from ins, .price ins { text-decoration: none; color: var(--ffc-gilt); font-weight: 600; }

.ffc-depths { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--ffc-rule); }
.ffc-depths h3 { font-size: 1.125rem; margin: 0 0 8px; }
.ffc-depths ul { margin: 0; padding-left: 18px; color: var(--ffc-muted); }

/* load more (replaces page numbers on shop and collection pages) */
.ffc-lm-ready .wp-block-query-pagination { display: none !important; }
.ffc-lm { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 40px auto 8px; text-align: center; }
.ffc-lm-status { margin: 0; font-size: 14px; color: var(--ffc-muted); font-variant-numeric: tabular-nums; }
.ffc-lm-bar { width: 220px; height: 2px; background: var(--ffc-rule); border-radius: 2px; overflow: hidden; }
.ffc-lm-bar i { display: block; height: 100%; background: var(--ffc-ink); transition: width .4s ease; }
.ffc-lm-btn { appearance: none; border: 1px solid var(--ffc-ink); background: transparent; color: var(--ffc-ink); font: inherit; font-size: 15px; font-weight: 500; letter-spacing: .02em; padding: 14px 44px; border-radius: var(--ffc-radius); cursor: pointer; min-width: 220px; }
.ffc-lm-btn:hover { background: var(--ffc-ink); color: var(--ffc-paper); }
.ffc-lm-btn[aria-busy="true"] { opacity: .6; cursor: progress; }
.ffc-lm-new { animation: ffc-lm-in .45s ease both; }
@keyframes ffc-lm-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
