/* ============ Fonts (self-hosted, GDPR) ============ */
/* Sistema "etichetta whiskey vittoriana" (riferimenti: insegne dorate dei pub di Dublino, insegna THC, cló gaelach):
   Cinzel = capitali dell'insegna (h1, wordmark) · Berkshire Swash = "Irish Pub" (titoli di sezione h2)
   Libre Caslon = stampa vittoriana (h3/h4, squadre, piatti, orari, prezzi) · Aladin = slogan e sottotitoli
   Uncial Antiqua = solo parole gaeliche decorative (Fáilte, Sláinte) · Inter = testi e interfaccia */
@font-face {
	font-family: 'Cinzel';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url(../fonts/cinzel-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'Berkshire Swash';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(../fonts/berkshire-swash-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'Libre Caslon Text';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(../fonts/libre-caslon-400-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'Libre Caslon Text';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url(../fonts/libre-caslon-700-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'Aladin';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(../fonts/aladin-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'Uncial Antiqua';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(../fonts/uncial-antiqua-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url(../fonts/inter-latin.woff2) format('woff2');
}

/* ============ Design tokens ============ */
/* Contratto pubblico: i plugin thc-* usano queste variabili. Non rinominare. */
:root {
	/* Direzione "Pub vittoriano" (scelta 2026-10-19): nero caldo e pergamena che si alternano, verde bottiglia per le fasce, oro foglia */
	--color-bg:           #0f0d0a;   /* nero caldo: hero, sezioni scure, footer */
	--color-board:        #0f0d0a;   /* fondo principale (body) */
	--color-wood:         #17140f;   /* scuro alternativo */
	--color-surface:      #1c1813;   /* card e pannelli */
	--color-surface-2:    #26201a;
	--color-ink:          #221a10;   /* testo su pergamena */
	--color-gold-hi:      #e6c77c;   /* oro foglia chiaro: titoli su scuro */
	--color-gold-light:   #d9b45f;   /* oro per testi/link su scuro */
	--color-gold:         #c9a24a;   /* oro foglia: bottoni, bordi, badge, etichette */
	--color-gold-deep:    #9c7a32;
	--color-gold-dark:    #7a5a0a;   /* oro leggibile su pergamena (AA) */
	--color-forest-green: #12301f;   /* verde bottiglia: fasce (Croke Park, prenota) */
	--color-shamrock:     #2f5a3b;   /* verde campo/dettagli sulle fasce verdi */
	--color-anthracite:   #15110b;
	--color-parchment:    #efe4cc;
	--color-cream:        #f2ead8;   /* testo su scuro */
	--color-cream-dim:    #b9ab90;
	--color-overlay:      rgba(15, 13, 10, 0.72);
	--color-line:         rgba(201, 162, 74, 0.3);
	--frame:              1px solid var(--color-line);

	--font-title:   'Cinzel', 'Trajan Pro', Georgia, serif;          /* h1, wordmark, titoli pagina */
	--font-display: 'Berkshire Swash', Georgia, serif;               /* h2 titoli di sezione */
	--font-serif:   'Libre Caslon Text', 'Baskerville', Georgia, serif; /* h3/h4, squadre, piatti, orari, prezzi */
	--font-script:  'Aladin', 'Berkshire Swash', Georgia, serif;     /* slogan, sottotitoli */
	--font-gael:    'Uncial Antiqua', Georgia, serif;                /* solo parole gaeliche */
	--font-celtic:  var(--font-display);
	--font-roman:   var(--font-title);
	--font-body:    'Inter', 'Helvetica Neue', Arial, sans-serif;

	/* Scala tipografica fluida (min @ 360px → max @ 1280px) */
	--text-xs:   0.75rem;
	--text-sm:   0.875rem;
	--text-base: 1rem;
	--text-lg:   clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
	--text-xl:   clamp(1.375rem, 1.2rem + 0.75vw, 1.75rem);
	--text-2xl:  clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
	--text-3xl:  clamp(2.25rem, 1.6rem + 2.8vw, 3.75rem);
	--text-4xl:  clamp(2.75rem, 1.8rem + 4.2vw, 5rem);

	--space-2xs: 0.25rem;
	--space-xs:  0.5rem;
	--space-sm:  0.75rem;
	--space-md:  1rem;
	--space-lg:  1.5rem;
	--space-xl:  2.5rem;
	--space-2xl: 4rem;
	--space-3xl: clamp(4rem, 3rem + 5vw, 7.5rem);

	--container: 1200px;
	--gutter:    clamp(1rem, 0.5rem + 2vw, 2rem);
	--radius:    4px;
	--header-h:  76px;

	/* Segni degli ornamenti (trifoglio, spiga d'orzo per il whiskey) e texture "carta pergamena vintage" richieste dal brief */
	--mark-shamrock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='black'%3E%3Cpath d='M12 11.2C9.3 9.6 7.4 7.2 8.6 5.3C9.6 3.8 11.5 4.1 12 5.6C12.5 4.1 14.4 3.8 15.4 5.3C16.6 7.2 14.7 9.6 12 11.2Z'/%3E%3Cpath d='M12 11.2C9.3 9.6 7.4 7.2 8.6 5.3C9.6 3.8 11.5 4.1 12 5.6C12.5 4.1 14.4 3.8 15.4 5.3C16.6 7.2 14.7 9.6 12 11.2Z' transform='rotate%28120 12 11.2%29'/%3E%3Cpath d='M12 11.2C9.3 9.6 7.4 7.2 8.6 5.3C9.6 3.8 11.5 4.1 12 5.6C12.5 4.1 14.4 3.8 15.4 5.3C16.6 7.2 14.7 9.6 12 11.2Z' transform='rotate%28240 12 11.2%29'/%3E%3C/g%3E%3Cpath d='M12 11.5C12.6 15 14 18.6 16.4 21.4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
	--mark-barley: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='black'%3E%3Cellipse cx='10.3' cy='6' rx='1.6' ry='2.6' transform='rotate%28-28 10.3 6%29'/%3E%3Cellipse cx='13.7' cy='6' rx='1.6' ry='2.6' transform='rotate%2828 13.7 6%29'/%3E%3Cellipse cx='10.3' cy='9' rx='1.6' ry='2.6' transform='rotate%28-28 10.3 9%29'/%3E%3Cellipse cx='13.7' cy='9' rx='1.6' ry='2.6' transform='rotate%2828 13.7 9%29'/%3E%3Cellipse cx='10.3' cy='12' rx='1.6' ry='2.6' transform='rotate%28-28 10.3 12%29'/%3E%3Cellipse cx='13.7' cy='12' rx='1.6' ry='2.6' transform='rotate%2828 13.7 12%29'/%3E%3Cellipse cx='10.3' cy='15' rx='1.6' ry='2.6' transform='rotate%28-28 10.3 15%29'/%3E%3Cellipse cx='13.7' cy='15' rx='1.6' ry='2.6' transform='rotate%2828 13.7 15%29'/%3E%3Cellipse cx='12' cy='3.6' rx='1.4' ry='2.4'/%3E%3C/g%3E%3Cpath d='M12 6v16.5' stroke='black' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	--tex-paper:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E %3CfeColorMatrix values='0 0 0 0 0.36 0 0 0 0 0.27 0 0 0 0 0.12 0 0 0 0.13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23p%29'/%3E%3C/svg%3E");
	--tex-grain:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E %3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 0.95 0 0 0 0 0.85 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23g%29'/%3E%3C/svg%3E");

	--ease:      cubic-bezier(0.2, 0.7, 0.2, 1);
	--duration:  240ms;
}

/* ============ Reset ============ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--header-h); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
	min-height: 100vh;
	background: var(--color-board) var(--tex-grain);
	color: var(--color-cream);
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, picture, video, svg { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
a { color: var(--color-gold-light); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--color-cream); }
ul[class], ol[class] { list-style: none; padding: 0; }
:focus-visible { outline: 2px solid var(--color-gold-light); outline-offset: 3px; }
[hidden] { display: none !important; }

/* ============ Typography ============ */
h1, h2, h3, h4 {
	font-family: var(--font-serif);
	font-weight: 700;
	line-height: 1.15;
	text-wrap: balance;
	color: var(--color-cream);
}

h1 { font-family: var(--font-title); text-transform: uppercase; letter-spacing: 0.04em; font-size: var(--text-4xl); }
h2 { font-family: var(--font-display); font-weight: 400; }
h2 { font-size: clamp(1.9rem, 1.4rem + 2vw, 3rem); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }
h2:not(.eyebrow) { color: var(--color-gold-hi); }
:is(h1, h2) em { font-style: normal; color: var(--color-gold-hi); }
.section--parchment :is(h1, h2, h3, h4) { color: var(--color-ink); }
em { font-style: italic; }
/* I font dell'insegna hanno un solo peso e nessun corsivo: niente grassetti/corsivi finti */
:is(h1, h2, h3, h4, .kicker, .gael) { font-synthesis: none; }
.gael { font-family: var(--font-gael); font-weight: 400; letter-spacing: 0.04em; color: var(--color-gold-light); }

.eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-gold-light);
	line-height: 1.4;
}

/* Sottotitolo "di marchio" in carattere irlandese (es. "Il modello Croke Park") */
.kicker {
	font-family: var(--font-script);
	font-weight: 400;
	font-size: clamp(1.5rem, 1rem + 1.6vw, 2.3rem);
	line-height: 1.15;
	color: var(--color-gold-light);
}

.prose { max-width: 68ch; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: var(--text-2xl); margin-top: 1.8em; }
.prose h3 { margin-top: 1.5em; }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose p, .prose li { color: color-mix(in srgb, var(--color-parchment) 85%, transparent); }

/* ============ Utilities ============ */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.skip-link {
	position: absolute;
	left: var(--space-md);
	top: -100px;
	z-index: 200;
	padding: var(--space-xs) var(--space-md);
	background: var(--color-gold);
	color: var(--color-anthracite);
	font-weight: 600;
}
.skip-link:focus { top: var(--space-md); }
