/*
Theme Name: Arxiu del Detectiu (Child)
Template: generatepress
Description: Custom child theme for the Arxiu del Detectiu escape room site.
Version: 4.0.0
Text Domain: arxiu-child
*/

/* ==========================================================================
   Tokens — ported from the original HTML design reference
   ========================================================================== */
:root {
	--paper: #f2ede4;
	--paper-dark: #e8e0d0;
	--paper-card: #fbf6ee;
	--ink: #1c1a16;
	--ink-muted: #5a5347;
	--folder: #8b7355;
	--folder-light: #b09a7a;
	--gold: #c4a96b;
	--archive-green: #2c3e2d;
	--archive-green-light: #3d5a3e;
	--case-red: #6b2d2d;
	--nav-bg: #1c1a16;

	--font-serif: 'Playfair Display', Georgia, serif;
	--font-mono: 'Courier Prime', 'Courier New', monospace;
	--font-hand: 'Caveat', cursive;

	--content-width: 960px;
}

/* ==========================================================================
   Base
   ========================================================================== */
* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-serif);
	color: var(--ink);
	background: var(--paper);
	line-height: 1.65;
	/* Subtle paper grain, same technique as the reference (inline SVG noise) */
	background-image: url("data:image/svg+xml,%3Csvg width='400' height='400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
}

h1,
h2,
h3,
h4 {
	font-family: var(--font-serif);
	line-height: 1.25;
	color: var(--ink);
	margin: 0 0 0.5em;
}

a {
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.site-main {
	max-width: var(--content-width);
	margin: 0 auto;
}

/* Optional editorial classes — apply via the block editor's
   "Additional CSS Class" field on any block, no schema needed. */
.document-fragment {
	background: var(--paper-card);
	border: 1px solid #d4c9b0;
	padding: 1rem;
	font-family: var(--font-mono);
	font-size: 0.85rem;
	line-height: 1.7;
	color: var(--ink-muted);
}

.handnote {
	font-family: var(--font-hand);
	font-size: 1.15rem;
	color: var(--case-red);
	display: inline-block;
	transform: rotate(-2deg);
}

.evidence-tag {
	display: inline-block;
	background: var(--paper-card);
	border: 1px solid #d4c9b0;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.5px;
	padding: 3px 9px;
	margin: 2px;
	color: var(--ink-muted);
}

/* ==========================================================================
   Header / nav — dark bookend with gold accent
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	width: 100%;
	background: var(--nav-bg);
	border-bottom: 2px solid var(--gold);
}

.site-header__inner {
	max-width: var(--content-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	padding: 0.6rem 1.5rem;
	min-height: 56px;
}

.site-brand {
	position: absolute;
	left: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--font-hand);
	font-size: 1.3rem;
	color: var(--gold);
	letter-spacing: 1px;
	text-decoration: none;
	white-space: nowrap;
}

.primary-nav ul {
	list-style: none;
	display: flex;
	gap: 0;
	margin: 0;
	padding: 0;
}

.primary-nav a {
	text-decoration: none;
	color: #c8bea8;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 0 1.4rem;
	line-height: 54px;
	display: inline-block;
	border-bottom: 3px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.primary-nav a:hover,
.primary-nav a:focus-visible {
	color: var(--gold);
	border-bottom-color: var(--gold);
}

.lang-switcher {
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	gap: 4px;
}

.lang-switcher a {
	background: none;
	border: 1px solid #444;
	color: #888;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	padding: 4px 8px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.lang-switcher a.pll-parent-locked,
.lang-switcher .lang-current {
	background: var(--gold);
	color: var(--ink);
	border-color: var(--gold);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
	background: var(--nav-bg);
	color: #888;
	border-top: 2px solid var(--gold);
	padding: 2.5rem 1.5rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	line-height: 1.8;
	margin-top: 3rem;
}

.site-footer__inner {
	max-width: var(--content-width);
	margin: 0 auto;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	margin-bottom: 2rem;
}

.footer-col h4 {
	font-family: var(--font-serif);
	font-size: 0.8rem;
	color: var(--gold);
	letter-spacing: 1px;
	margin-bottom: 0.75rem;
}

.site-footer a {
	color: #888;
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--gold);
}

.footer-legal-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-legal-nav a {
	text-decoration: underline;
	font-size: 0.68rem;
	color: #666;
}

.footer-legal-nav a:hover {
	color: var(--gold);
}

.footer-bottom {
	border-top: 1px solid #333;
	padding-top: 1.25rem;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.footer-slogan {
	font-family: var(--font-hand);
	color: var(--gold);
	font-size: 0.95rem;
}

@media (max-width: 640px) {
	.footer-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn-reservar {
	display: inline-block;
	background: var(--archive-green);
	color: #ede5d5;
	border: 2px solid var(--archive-green);
	cursor: pointer;
	font-family: var(--font-mono);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	padding: 0.75rem 2rem;
	text-decoration: none;
	transition: all 0.2s ease;
}

.btn-reservar:hover,
.btn-reservar:focus-visible {
	background: var(--archive-green-light);
	border-color: var(--archive-green-light);
}

/* ==========================================================================
   Homepage hero
   ========================================================================== */
.hero {
	text-align: center;
	padding: 3.5rem 1.5rem 3rem;
	background: linear-gradient(180deg, #ede5d5 0%, var(--paper) 100%);
	border-bottom: 1px solid var(--paper-dark);
}

.hero-content h1 {
	font-size: clamp(1.6rem, 4vw, 2.6rem);
	font-style: italic;
	line-height: 1.6;
	max-width: 640px;
	margin: 0 auto 1.5rem;
}

.hero-content p {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	color: var(--ink-muted);
	letter-spacing: 1px;
	max-width: 640px;
	margin: 0 auto;
}

.hero-stamp {
	display: inline-block;
	border: 3px solid var(--case-red);
	color: var(--case-red);
	font-family: var(--font-mono);
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	padding: 4px 12px;
	margin-bottom: 2rem;
	transform: rotate(-2deg);
}

/* ==========================================================================
   Homepage — Casos as folders
   ========================================================================== */
.cases-section {
	padding: 2rem 1.5rem 4rem;
	max-width: var(--content-width);
	margin: 0 auto;
}

.cases-heading {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: var(--ink-muted);
	border-bottom: 1px solid var(--paper-dark);
	padding-bottom: 0.75rem;
	margin: 0 0 2rem;
}

.casos-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.caso-folder-wrap {
	margin-bottom: 2rem;
}

.caso-folder {
	background: var(--folder);
	box-shadow: 3px 4px 12px rgba(0, 0, 0, 0.25);
	position: relative;
	overflow: hidden;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.caso-folder-tab {
	background: var(--folder-light);
	width: 140px;
	height: 18px;
	margin-left: 20px;
	display: flex;
	align-items: center;
	padding: 0 10px;
}

.caso-folder-tab span {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	color: #3a2e1e;
	text-transform: uppercase;
	letter-spacing: 1px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.caso-folder__tab {
	cursor: pointer;
	list-style: none;
	background: var(--folder);
	padding: 1rem 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.caso-folder__tab::-webkit-details-marker {
	display: none;
}

.caso-folder__scribble {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	color: #c8b897;
	letter-spacing: 2px;
	text-transform: uppercase;
	display: block;
	margin-bottom: 4px;
}

.caso-folder__label {
	font-family: var(--font-serif);
	font-size: 1.15rem;
	font-weight: 600;
	color: #f2ede4;
}

.caso-folder__arrow {
	font-size: 1.2rem;
	color: #c8b897;
	transition: transform 0.3s ease;
	flex-shrink: 0;
}

.caso-folder[open] .caso-folder__arrow {
	transform: rotate(90deg);
}

.caso-folder__contents {
	background: var(--paper);
	border-top: 3px solid var(--folder-light);
	padding: 2rem;
}

.caso-folder__excerpt {
	font-size: 0.95rem;
	line-height: 1.8;
	border-left: 3px solid var(--gold);
	padding-left: 1rem;
	margin-bottom: 1.5rem;
}

/* ==========================================================================
   Single Caso
   ========================================================================== */
.single-caso .caso-content {
	margin-top: 1.5rem;
	font-size: 0.95rem;
	line-height: 1.8;
}

.caso-reserva-cta {
	margin-top: 2rem;
}

/* ==========================================================================
   FAQS accordion
   ========================================================================== */
.faqs-content details {
	border-bottom: 1px solid var(--paper-dark);
}

.faqs-content summary {
	cursor: pointer;
	list-style: none;
	padding: 1.1rem 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.faqs-content summary::-webkit-details-marker {
	display: none;
}

.faqs-content summary .faq-q-text {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	font-weight: 600;
}

.faqs-content summary::after {
	content: '+';
	font-size: 1rem;
	color: var(--gold);
	flex-shrink: 0;
	transition: transform 0.25s ease;
}

.faqs-content details[open] summary::after {
	transform: rotate(45deg);
}

.faqs-content .faq-answer {
	padding: 0 0 1.1rem;
	font-family: var(--font-mono);
	font-size: 0.83rem;
	line-height: 1.7;
	color: var(--ink-muted);
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 640px) {
	.site-brand {
		position: static;
		transform: none;
	}

	.site-header__inner {
		flex-direction: column;
		gap: 0.5rem;
		padding: 0.75rem 1rem;
	}

	.primary-nav a {
		padding: 0 0.85rem;
	}

	.lang-switcher {
		position: static;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
}
