/* ==========================================================================
   Catanduanes Food Trip page — hero, food types, directory, call to action
   Upload to the child theme's /css/ folder. Loaded by the Food Trip page snippet.
   ========================================================================== */

.icpft {
	--ft-navy: #14275A;
	--ft-ink: #22304A;
	font-family: "Nunito", system-ui, sans-serif;
	color: var(--ft-navy);
}
/* No sideways scrollbar from the full-width sections */
html:has(.icpft),
body:has(.icpft) { overflow-x: clip; }

/* Sections run edge to edge, even inside the theme's content box */
.icpft-hero,
.icpft-types,
.icpft-dir,
.icpft-cta {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	box-sizing: border-box;
}
.icpft-wrap,
.icpft-hero__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 clamp(16px, 3vw, 32px);
	box-sizing: border-box;
}
.icpft-h2 {
	margin: 0 0 6px;
	font-family: "Fraunces", Georgia, serif;
	font-weight: 800;
	font-size: clamp(28px, 3.4vw, 40px);
	line-height: 1.1;
	color: var(--ft-navy);
}
.icpft-eyebrow {
	display: inline-block;
	margin: 0 0 12px;
	padding: 5px 14px;
	border-radius: 10px;
	background: linear-gradient(180deg, #E8461B, #B4321A);
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}
.icpft-eyebrow--plain { padding: 0; background: none; color: #C2410C; }
.icpft-eyebrow--light { background: rgba(255, 255, 255, 0.18); }

/* Buttons */
.icpft-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 24px;
	border-radius: 999px;
	background: linear-gradient(180deg, #F0561B, #C2410C);
	color: #FFFFFF;
	font-weight: 800;
	font-size: 16px;
	text-decoration: none;
	box-shadow: 0 4px 0 #8A2E08;
}
.icpft-btn:hover,
.icpft-btn:focus-visible { color: #FFFFFF; filter: brightness(1.08); }
.icpft-btn--ghost {
	background: #FFFFFF;
	color: var(--ft-navy);
	border: 2px solid var(--ft-navy);
	box-shadow: none;
}
.icpft-btn--ghost:hover,
.icpft-btn--ghost:focus-visible { color: var(--ft-navy); background: #EEF6FE; }
.icpft-btn--light {
	background: #FFFFFF;
	color: #5B2A9A;
	box-shadow: 0 4px 0 rgba(0, 0, 0, 0.18);
}
.icpft-btn--light:hover,
.icpft-btn--light:focus-visible { color: #5B2A9A; }

/* Hero */
.icpft-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(36px, 6vw, 72px) 0 clamp(40px, 6vw, 64px);
	background: linear-gradient(180deg, #CBEAFB 0%, #F3FAFE 60%, #FFFFFF 100%);
}
.icpft-hero__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 32px;
}
.icpft-hero__copy { flex: 1 1 520px; min-width: 0; }
.icpft-title {
	margin: 0 0 16px;
	font-family: "Fraunces", Georgia, serif;
	font-weight: 800;
	font-size: clamp(42px, 6vw, 80px);
	line-height: 0.98;
	letter-spacing: -1.5px;
	color: var(--ft-navy);
}
.icpft-title span {
	display: block;
	margin-top: 6px;
	font-family: "Sansita", "Nunito", sans-serif;
	font-style: italic;
	font-weight: 900;
	font-size: 0.62em;
	letter-spacing: -0.5px;
	background: linear-gradient(90deg, #FFA51F, #E8461B 55%, #1FB5C9);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.icpft-lead {
	max-width: 580px;
	margin: 0 0 24px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.55;
	color: var(--ft-ink);
}
.icpft-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.icpft-hero__art {
	position: relative;
	flex: 0 1 380px;
	height: 300px;
}
.icpft-bubble {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 5px solid #FFFFFF;
	box-shadow: 0 14px 30px rgba(20, 39, 90, 0.18);
}
.icpft-bubble--a { width: 120px; height: 120px; left: 8%;  top: 8%;  background: #1C8FD6; }
.icpft-bubble--b { width: 150px; height: 150px; left: 42%; top: 28%; background: #F07A1A; }
.icpft-bubble--c { width: 92px;  height: 92px;  left: 70%; top: 0;   background: #8A5A2B; }
.icpft-bubble--d { width: 96px;  height: 96px;  left: 12%; top: 62%; background: #2E9E5B; }
.icpft-bubble--e { width: 84px;  height: 84px;  left: 80%; top: 70%; background: #E2558B; }

/* Food types */
.icpft-types { padding: 8px 0 40px; background: #FFFFFF; }
.icpft-types__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}
.icpft-type {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 16px 10px 14px;
	border: 2px solid color-mix(in srgb, var(--c) 45%, #FFFFFF);
	border-radius: 16px;
	background: color-mix(in srgb, var(--c) 8%, #FFFFFF);
	color: var(--ft-navy);
	font: 800 14px "Nunito", system-ui, sans-serif;
	line-height: 1.25;
	text-align: center;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.icpft-type:hover,
.icpft-type:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 8px 18px rgba(20, 39, 90, 0.12);
}
.icpft-type.is-active {
	border-color: var(--c);
	background: color-mix(in srgb, var(--c) 16%, #FFFFFF);
}
.icpft-type__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #FFFFFF;
	box-shadow: 0 3px 10px rgba(20, 39, 90, 0.12);
}

/* Directory */
.icpft-dir { padding: 44px 0 56px; background: #F6FAFD; }
.icpft-count { margin: 0 0 18px; font-size: 16px; font-weight: 700; color: #4A5568; }
.icpft-filters {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.4fr);
	gap: 10px;
	margin: 0 0 22px;
}
.icpft-filters select,
.icpft-search input {
	width: 100%;
	box-sizing: border-box;
	min-height: 46px;
	padding: 0 14px;
	border: 1.5px solid #CBDCEB;
	border-radius: 999px;
	background-color: #FFFFFF;
	font: 700 15px "Nunito", system-ui, sans-serif;
	color: var(--ft-navy);
}
.icpft-search { position: relative; display: block; }
.icpft-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); }
.icpft-search input { padding-left: 40px; }
.icpft-filters select:focus,
.icpft-search input:focus { outline: 3px solid #7FD6E8; outline-offset: 1px; }

.icpft-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 18px;
}
.icpft-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 18px;
	background: #FFFFFF;
	box-shadow: 0 8px 22px rgba(20, 39, 90, 0.08);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.icpft-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(20, 39, 90, 0.14); }
.icpft-card[hidden] { display: none; }
.icpft-card__media {
	position: relative;
	display: block;
	height: 180px;
	background: linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 60%, #14275A));
}
.icpft-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.icpft-card__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	opacity: 0.9;
}
.icpft-card__town,
.icpft-card__price {
	position: absolute;
	top: 12px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	border-radius: 999px;
	background: #FFFFFF;
	color: var(--ft-navy);
	font-size: 12px;
	font-weight: 800;
}
.icpft-card__town { left: 12px; }
.icpft-card__price { right: 12px; color: #1D6E3E; }
.icpft-card__body { padding: 14px 16px 18px; }
.icpft-card__type {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--c);
	filter: brightness(0.85);
}
.icpft-card__title {
	margin: 0 0 8px;
	font-family: "Fraunces", Georgia, serif;
	font-weight: 800;
	font-size: 20px;
	line-height: 1.2;
}
.icpft-card__title a { color: var(--ft-navy); text-decoration: none; }
.icpft-card__title a:hover,
.icpft-card__title a:focus-visible { text-decoration: underline; }
.icpft-card__must,
.icpft-card__hours {
	margin: 0 0 6px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--ft-ink);
}
.icpft-card__hours { display: flex; align-items: center; gap: 6px; color: #4A5568; }
.icpft-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}
.icpft-card__tags li {
	margin: 0;
	padding: 3px 10px;
	border-radius: 999px;
	background: #EEF6FE;
	color: #1A5FA8;
	font-size: 12px;
	font-weight: 800;
}
.icpft-none { margin: 24px 0 0; font-weight: 700; color: #4A5568; }

.icpft-empty {
	max-width: 560px;
	margin: 8px auto 0;
	padding: 36px 28px;
	border: 2px dashed #F2A6AE;
	border-radius: 20px;
	background: #FFFFFF;
	text-align: center;
}
.icpft-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: #FDECEE;
}
.icpft-empty h3 {
	margin: 0 0 8px;
	font-family: "Fraunces", Georgia, serif;
	font-weight: 800;
	font-size: 24px;
}
.icpft-empty p { margin: 0 0 18px; font-size: 16px; line-height: 1.55; color: var(--ft-ink); }

/* Call to action */
.icpft-cta {
	padding: 44px 0;
	background: linear-gradient(135deg, #6A2FB8, #3E1C7A);
	color: #FFFFFF;
}
.icpft-cta__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.icpft-cta h2 {
	margin: 0 0 6px;
	font-family: "Fraunces", Georgia, serif;
	font-weight: 800;
	font-size: clamp(24px, 3vw, 34px);
	color: #FFFFFF;
}
.icpft-cta p { max-width: 640px; margin: 0; font-size: 17px; line-height: 1.5; color: #EDE4FA; }

/* Responsive */
@media (max-width: 1000px) {
	.icpft-types__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.icpft-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.icpft-hero__art { display: none; }
}
@media (max-width: 600px) {
	.icpft-types__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.icpft-filters { grid-template-columns: 1fr; }
	.icpft-lead { font-size: 17px; }
	.icpft-actions .icpft-btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.icpft-type,
	.icpft-card { transition: none; }
}