:root {
  --coral: #c95f4d;
  --coral-dark: #a6493c;
  --coral-soft: #dc8371;
  --saffron: #d0a14f;
  --saffron-soft: #e7ca96;
  --olive: #747a45;
  --olive-dark: #586039;
  --cream: #efe1cc;
  --sand: #f7f1e8;
  --sand-2: #f0e7da;
  --ink: #23241f;
  --ink-soft: #34362f;
  --muted: #706a62;
  --white: #fffdf8;
  --line: rgba(32,34,30,.13);
  --glass: rgba(255,255,255,.12);
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 34px;
  --shadow-xs: 0 1px 2px rgba(38,31,25,.08), 0 4px 12px rgba(38,31,25,.05);
  --shadow-sm: 0 4px 12px rgba(38,31,25,.08), 0 12px 30px rgba(38,31,25,.07);
  --shadow-md: 0 10px 24px rgba(38,31,25,.10), 0 28px 70px rgba(38,31,25,.10);
  --shadow-lg: 0 16px 42px rgba(31,26,21,.14), 0 42px 110px rgba(31,26,21,.14);
  --container: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
::selection { background: var(--saffron-soft); color: var(--ink); }

.container { width: min(calc(100% - 44px), var(--container)); margin-inline: auto; }
.section { padding: 124px 0; position: relative; }

.skip-link {
  position: fixed; left: 20px; top: -80px; z-index: 9999;
  background: var(--ink); color: white; padding: 12px 18px; border-radius: 0 0 12px 12px;
}
.skip-link:focus { top: 0; }

.utility-bar {
  background: var(--olive-dark); color: rgba(255,255,255,.92);
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.utility-inner { height: 34px; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.utility-separator { width: 4px; height: 4px; border-radius: 50%; background: var(--saffron); }

.site-header { position: sticky; top: 0; z-index: 1000; }
.nav-shell {
  background: rgba(255,253,248,.90);
  backdrop-filter: blur(20px) saturate(120%);
  border-bottom: 1px solid rgba(32,34,30,.08);
  box-shadow: 0 8px 30px rgba(29,25,20,.045);
}
.nav-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.brand-mark {
  width: 44px; height: 44px; border-radius: 15px; display: grid; place-items: center;
  background: linear-gradient(145deg, var(--coral-soft), var(--coral)); color: white;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 8px 18px rgba(185,67,50,.18);
}
.brand-mark svg { width: 30px; height: 30px; }
.brand-copy { display: grid; line-height: 1.05; }
.brand-copy strong { font-family: "Outfit", sans-serif; font-size: 18px; letter-spacing: -.035em; }
.brand-copy small { margin-top: 5px; color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; }
.main-nav { display: flex; align-items: center; gap: 20px; font-size: 13px; font-weight: 700; }
.main-nav a { position: relative; transition: color .2s ease, transform .2s ease; }
.main-nav a:not(.nav-cta)::after {
  content: ""; position: absolute; left: 0; width: 100%; bottom: -9px; height: 2px;
  transform: scaleX(0); transform-origin: right; background: var(--coral); transition: transform .24s ease;
}
.main-nav a:hover, .main-nav a.is-active { color: var(--coral-dark); }
.main-nav a:hover::after, .main-nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.nav-cta {
  background: var(--ink); color: white; padding: 11px 16px; border-radius: 999px;
  box-shadow: var(--shadow-xs); transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}
.nav-cta:hover { color: white !important; transform: translateY(-2px); box-shadow: var(--shadow-sm); background: var(--coral-dark); }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--line); background: var(--sand); border-radius: 14px; padding: 0 12px; cursor: pointer; box-shadow: var(--shadow-xs); }
.menu-toggle span { display: block; height: 2px; margin: 5px 0; background: var(--ink); border-radius: 4px; }

.hero {
  position: relative; overflow: hidden; color: white;
  background:
    radial-gradient(circle at 74% 20%, rgba(244,222,187,.18), transparent 27%),
    linear-gradient(125deg, #ce523f 0%, var(--coral) 46%, #d4664d 100%);
  min-height: calc(100vh - 116px); display: grid; align-content: center;
}
.hero::before {
  content: ""; position: absolute; width: 480px; height: 480px; left: -250px; bottom: 6%;
  border: 72px solid rgba(230,171,57,.72); border-radius: 50%; filter: blur(.2px);
}
.hero::after {
  content: ""; position: absolute; width: 380px; height: 650px; right: -205px; top: 3%;
  background: rgba(104,112,44,.64); transform: rotate(-10deg); border-radius: 80px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.hero-grain {
  position: absolute; inset: 0; opacity: .17; pointer-events: none; mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; min-height: 720px; padding-block: 68px 116px; gap: 72px; }
.eyebrow, .section-kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 22px; font-size: 11px; line-height: 1; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.eyebrow::before, .section-kicker::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.eyebrow span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.hero h1 { margin: 0; max-width: 760px; font-family: "Outfit", sans-serif; font-size: clamp(58px, 7vw, 104px); line-height: .89; letter-spacing: -.066em; font-weight: 600; }
.hero h1 em { color: var(--cream); font-style: normal; }
.hero-lead { max-width: 660px; margin: 30px 0 0; font-size: clamp(18px, 1.7vw, 23px); line-height: 1.42; color: rgba(255,255,255,.87); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.btn {
  min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 0 22px;
  border-radius: 999px; font-weight: 800; font-size: 13px; transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.btn:hover { transform: translateY(-3px); }
.btn-light { background: var(--cream); color: var(--ink); box-shadow: 0 10px 22px rgba(82,39,29,.18), inset 0 1px 0 rgba(255,255,255,.6); }
.btn-light:hover { box-shadow: 0 15px 34px rgba(82,39,29,.24), inset 0 1px 0 rgba(255,255,255,.7); }
.btn-ghost { border: 1px solid rgba(255,255,255,.42); color: white; background: rgba(255,255,255,.06); backdrop-filter: blur(12px); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.btn-ghost:hover { background: rgba(255,255,255,.11); }
.btn-dark { background: var(--ink); color: white; box-shadow: var(--shadow-sm); }
.btn-dark:hover { box-shadow: var(--shadow-md); }
.hero-meta {
  display: grid; grid-template-columns: repeat(3, 1fr); max-width: 620px; margin-top: 46px;
  border: 1px solid rgba(255,255,255,.20); border-radius: 20px; overflow: hidden;
  background: rgba(255,255,255,.09); backdrop-filter: blur(14px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 20px 45px rgba(84,39,28,.11);
}
.hero-meta > div { padding: 17px 19px; display: grid; gap: 2px; }
.hero-meta > div + div { border-left: 1px solid rgba(255,255,255,.18); }
.hero-meta span { font-size: 9px; text-transform: uppercase; letter-spacing: .13em; opacity: .68; }
.hero-meta strong { font-size: 18px; }
.hero-meta small { font-size: 11px; opacity: .72; }

.hero-art { position: relative; min-height: 560px; display: grid; place-items: center; perspective: 1000px; }
.hero-window {
  position: relative; z-index: 3; width: min(100%, 500px); aspect-ratio: .92; border-radius: 46% 46% 24% 24% / 36% 36% 24% 24%;
  background: var(--cream); color: var(--coral-dark); overflow: hidden;
  box-shadow: 0 2px 0 rgba(255,255,255,.45) inset, 0 18px 35px rgba(80,37,28,.17), 0 52px 90px rgba(80,37,28,.18);
  transform: rotate(2deg);
}
.window-label { position: absolute; z-index: 5; top: 22px; left: 24px; font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.sun-disc { position: absolute; width: 220px; aspect-ratio: 1; border-radius: 50%; background: var(--saffron); right: -35px; top: 44px; box-shadow: 0 0 0 20px rgba(221,168,58,.15); }
.hero-fish { position: absolute; z-index: 4; width: 112%; left: -9%; top: 27%; filter: drop-shadow(0 18px 22px rgba(73,50,34,.13)); }
.sea-lines { position: absolute; left: -8%; right: -8%; bottom: 0; height: 40%; }
.sea-lines i { position: absolute; left: 0; width: 110%; height: 82px; border: 4px solid var(--olive); border-left: 0; border-right: 0; border-radius: 50%; opacity: .92; }
.sea-lines i:nth-child(1) { bottom: 23%; transform: rotate(-2deg); }
.sea-lines i:nth-child(2) { bottom: 7%; transform: rotate(4deg); border-color: var(--coral); }
.sea-lines i:nth-child(3) { bottom: -10%; transform: rotate(-5deg); border-color: var(--saffron); }
.hero-orbit { position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.24); }
.orbit-one { width: 540px; height: 540px; }
.orbit-two { width: 430px; height: 430px; border-style: dashed; opacity: .6; }
.floating-chip {
  position: absolute; z-index: 6; padding: 10px 14px; border-radius: 999px; font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .1em; box-shadow: var(--shadow-sm); backdrop-filter: blur(12px);
  animation: floaty 5.8s ease-in-out infinite;
}
.chip-one { top: 13%; right: -1%; background: var(--saffron); color: var(--ink); }
.chip-two { left: -2%; bottom: 24%; background: rgba(95,102,40,.95); color: white; animation-delay: -1.3s; }
.chip-three { right: 3%; bottom: 4%; background: rgba(248,242,232,.94); color: var(--coral-dark); animation-delay: -2.6s; }
@keyframes floaty { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(1deg); } }
.ticker { position: absolute; left: 0; right: 0; bottom: 0; z-index: 8; background: rgba(244,230,207,.96); color: var(--coral-dark); overflow: hidden; border-top: 1px solid rgba(255,255,255,.28); box-shadow: 0 -10px 30px rgba(83,39,28,.06); }
.ticker-track { width: max-content; min-width: 100%; height: 58px; display: flex; align-items: center; justify-content: center; gap: 24px; padding-inline: 24px; font-family: "Outfit", sans-serif; font-size: 19px; font-weight: 600; text-transform: lowercase; }
.ticker-track i { font-style: normal; color: var(--olive); font-size: 11px; }

.section-kicker { color: var(--coral-dark); }
.section-kicker.light { color: var(--cream); }
.section h2 { margin: 0; max-width: 850px; font-family: "Outfit", sans-serif; font-size: clamp(42px, 5vw, 72px); line-height: .97; letter-spacing: -.055em; }
.section-copy p { max-width: 720px; font-size: 18px; color: var(--muted); }
.section-copy p:first-of-type { margin-top: 30px; }

.about { background: linear-gradient(180deg, var(--white), #fbf7f0); overflow: hidden; }
.about::after { content: ""; position: absolute; width: 320px; height: 320px; right: -170px; bottom: 12%; border: 56px solid rgba(221,168,58,.18); border-radius: 50%; }
.about-layout { display: grid; grid-template-columns: 1.05fr .42fr .63fr; gap: 46px; align-items: center; }
.pill-row { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 32px; }
.pill-row span { padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.68); box-shadow: 0 4px 14px rgba(43,35,29,.03); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.edition-note {
  align-self: end; padding: 28px; border-radius: var(--radius-md); background: rgba(255,255,255,.68); border: 1px solid rgba(32,34,30,.08);
  box-shadow: var(--shadow-sm); backdrop-filter: blur(14px);
}
.edition-number { display: block; font-family: "Outfit", sans-serif; font-size: 86px; line-height: .8; letter-spacing: -.08em; color: var(--coral); }
.edition-label { margin: 24px 0 8px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--olive-dark); }
.edition-note p:last-child { margin: 0; color: var(--muted); font-size: 14px; }
.poster-frame { position: relative; background: var(--cream); border-radius: var(--radius-lg); padding: 22px; box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, var(--shadow-lg); transform: rotate(1.2deg); }
.poster-frame::before { content: ""; position: absolute; inset: 18px -18px -20px 22px; z-index: -1; background: var(--saffron-soft); border-radius: var(--radius-lg); transform: rotate(-4deg); box-shadow: 0 16px 34px rgba(52,40,27,.08); }
.poster-frame img { width: 100%; border-radius: 20px; }
.poster-label { position: absolute; left: -16px; top: 34px; z-index: 2; background: var(--olive-dark); color: white; padding: 9px 13px; border-radius: 999px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; box-shadow: var(--shadow-sm); }

.paths { background: var(--sand); overflow: hidden; }
.paths::before { content: ""; position: absolute; left: -80px; top: 80px; width: 200px; height: 200px; background: var(--cream); border-radius: 50%; box-shadow: 0 0 0 36px rgba(241,227,204,.5); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 52px; }
.section-heading > p { max-width: 430px; margin: 0; color: var(--muted); font-size: 16px; }
.path-grid { display: grid; grid-template-columns: 1.15fr .9fr .95fr; gap: 20px; align-items: stretch; }
.path-card {
  position: relative; min-height: 560px; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--radius-lg);
  padding: 30px; transform-style: preserve-3d; isolation: isolate;
  transition: transform .22s ease, box-shadow .3s ease, filter .3s ease;
  will-change: transform;
}
.path-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; border: 1px solid rgba(255,255,255,.18); border-radius: inherit; box-shadow: inset 0 1px 0 rgba(255,255,255,.24); }
.path-card:hover { box-shadow: 0 18px 36px rgba(47,38,31,.12), 0 42px 90px rgba(47,38,31,.14); filter: saturate(1.02); }
.path-topline { position: relative; z-index: 4; display: flex; justify-content: space-between; gap: 14px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; opacity: .78; }
.path-topline span:first-child { width: 42px; height: 42px; border-radius: 50%; border: 1px solid currentColor; display: grid; place-items: center; }
.path-visual { position: relative; min-height: 215px; display: grid; place-items: center; transform: translateZ(28px); transition: transform .35s ease; }
.path-card:hover .path-visual { transform: translateZ(42px) scale(1.035) rotate(-1deg); }
.path-visual svg { width: 76%; filter: drop-shadow(0 12px 14px rgba(54,34,24,.09)); }
.plate-ring { position: absolute; width: 210px; height: 210px; border: 24px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.13); }
.path-content { position: relative; z-index: 4; margin-top: auto; transform: translateZ(35px); }
.path-kicker { margin: 0 0 8px; font-size: 10px !important; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; opacity: .72 !important; }
.path-card h3 { margin: 0; font-family: "Outfit", sans-serif; font-size: clamp(38px, 3.5vw, 56px); line-height: .94; letter-spacing: -.055em; }
.path-card p { margin: 15px 0 0; max-width: 470px; font-size: 15px; opacity: .83; }
.path-link { display: inline-flex; gap: 10px; align-items: center; margin-top: 25px; font-size: 12px; font-weight: 800; }
.path-link b { font-size: 18px; transition: transform .22s ease; }
.path-card:hover .path-link b { transform: translateX(5px); }
.path-gastro { background: linear-gradient(155deg, #db654f 0%, var(--coral) 74%); color: white; box-shadow: 0 10px 24px rgba(185,67,50,.13), 0 32px 70px rgba(185,67,50,.13); }
.path-music { background: linear-gradient(155deg, #858a45 0%, var(--olive) 72%); color: white; box-shadow: 0 10px 24px rgba(94,100,41,.13), 0 32px 70px rgba(94,100,41,.12); }
.path-craft { background: linear-gradient(155deg, #e2b455 0%, var(--saffron) 72%); color: var(--ink); box-shadow: 0 10px 24px rgba(153,112,29,.11), 0 32px 70px rgba(153,112,29,.11); }
.music-visual { grid-template-columns: repeat(7, 1fr); align-items: center; gap: 7px; padding: 26px 16%; }
.music-visual i { width: 100%; border-radius: 999px; background: rgba(255,255,255,.68); box-shadow: 0 8px 18px rgba(37,42,18,.12); animation: equalize 2.8s ease-in-out infinite; }
.music-visual i:nth-child(1), .music-visual i:nth-child(7) { height: 58px; }
.music-visual i:nth-child(2), .music-visual i:nth-child(6) { height: 98px; animation-delay: -.7s; }
.music-visual i:nth-child(3), .music-visual i:nth-child(5) { height: 138px; animation-delay: -1.1s; }
.music-visual i:nth-child(4) { height: 174px; animation-delay: -.3s; }
@keyframes equalize { 0%,100% { transform: scaleY(.76); opacity: .7; } 50% { transform: scaleY(1); opacity: 1; } }
.craft-visual { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 36px 20%; transform: rotate(4deg) translateZ(28px); }
.craft-visual span { min-height: 76px; border: 3px solid rgba(32,34,30,.55); border-radius: 44% 56% 52% 48%; box-shadow: 8px 10px 0 rgba(255,255,255,.14); }
.craft-visual span:nth-child(2), .craft-visual span:nth-child(3) { border-radius: 50%; }

.schedule { background: var(--ink); color: white; overflow: hidden; }
.schedule::before { content: ""; position: absolute; right: -140px; top: 16%; width: 420px; height: 420px; border-radius: 50%; border: 66px solid rgba(122,129,56,.18); }
.schedule-header { display: grid; grid-template-columns: 1fr .68fr; align-items: end; gap: 60px; margin-bottom: 50px; }
.schedule-header p { margin: 0; color: rgba(255,255,255,.63); font-size: 16px; }
.schedule-card { position: relative; z-index: 2; padding: 22px 30px 4px; border-radius: var(--radius-lg); background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.09); box-shadow: 0 28px 80px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05); backdrop-filter: blur(14px); }
.schedule-tabs { display: flex; gap: 8px; margin-bottom: 16px; overflow-x: auto; padding: 4px 0 10px; }
.schedule-tab { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.03); color: white; border-radius: 999px; padding: 11px 18px; cursor: pointer; font-weight: 800; font-size: 12px; transition: .2s ease; }
.schedule-tab:hover { background: rgba(255,255,255,.08); }
.schedule-tab.active { background: var(--saffron); color: var(--ink); border-color: var(--saffron); box-shadow: 0 8px 20px rgba(190,136,29,.18); }
.schedule-panel { border-top: 1px solid rgba(255,255,255,.12); }
.schedule-item { display: grid; grid-template-columns: 120px 1fr auto; gap: 32px; align-items: center; padding: 28px 4px; border-bottom: 1px solid rgba(255,255,255,.12); }
.schedule-item:last-child { border-bottom: 0; }
.schedule-item time { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--saffron-soft); }
.schedule-item h3 { margin: 5px 0 5px; font-family: "Outfit", sans-serif; font-size: 25px; letter-spacing: -.025em; }
.schedule-item p { margin: 0; color: rgba(255,255,255,.58); }
.category { font-size: 9px; text-transform: uppercase; letter-spacing: .13em; font-weight: 800; color: rgba(255,255,255,.48); }
.status { padding: 8px 11px; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.03); border-radius: 999px; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; white-space: nowrap; }

.catalogs { background: var(--white); }
.catalog-callouts { display: grid; grid-template-columns: 1.15fr .9fr .9fr; gap: 20px; align-items: stretch; }
.catalog-intro { padding-right: 32px; }
.catalog-intro p { max-width: 540px; color: var(--muted); font-size: 17px; }
.catalog-callout { position: relative; min-height: 320px; display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: end; padding: 28px; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.catalog-callout:hover { transform: translateY(-7px); box-shadow: var(--shadow-lg); }
.catalog-callout::before { content: ""; position: absolute; width: 180px; height: 180px; border-radius: 50%; right: -55px; top: -65px; border: 30px solid rgba(255,255,255,.13); }
.catalog-callout small { font-size: 9px; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; opacity: .72; }
.catalog-callout h3 { margin: 5px 0 6px; font-family: "Outfit", sans-serif; font-size: 34px; letter-spacing: -.045em; }
.catalog-callout p { margin: 0; font-size: 13px; opacity: .76; }
.catalog-callout > b { font-size: 24px; transition: transform .2s ease; }
.catalog-callout:hover > b { transform: translate(4px,-4px); }
.catalog-index { font-family: "Outfit", sans-serif; font-size: 66px; line-height: .8; opacity: .32; }
.callout-gastro { background: var(--coral); color: white; }
.callout-craft { background: var(--olive); color: white; }

.memory { background: var(--sand-2); }
.memory-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.memory-card { min-height: 410px; display: grid; grid-template-columns: 150px 1fr; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); border: 1px solid rgba(32,34,30,.07); }
.memory-year { display: grid; place-items: end center; padding-bottom: 28px; font-family: "Outfit", sans-serif; font-size: 72px; line-height: .85; writing-mode: vertical-rl; transform: rotate(180deg); letter-spacing: -.08em; }
.memory-body { padding: 42px; display: flex; flex-direction: column; justify-content: center; }
.memory-body > span { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.memory-body h3 { margin: 12px 0 16px; font-family: "Outfit", sans-serif; font-size: 35px; line-height: 1.02; letter-spacing: -.045em; }
.memory-body p { margin: 0; opacity: .74; }
.text-button { margin-top: 30px; padding: 0; border: 0; background: transparent; text-align: left; font-weight: 800; cursor: pointer; }
.memory-past { background: rgba(255,253,248,.86); }
.memory-past .memory-year { background: var(--olive); color: white; }
.memory-current { background: var(--coral); color: white; }
.memory-current .memory-year { background: var(--saffron); color: var(--ink); }

.city { background: var(--olive-dark); color: white; overflow: hidden; }
.city-grid { display: grid; grid-template-columns: 1fr .95fr; align-items: center; gap: 84px; }
.city-copy p { max-width: 650px; font-size: 18px; color: rgba(255,255,255,.76); }
.city-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.city-visual { position: relative; min-height: 450px; border-radius: var(--radius-lg); background: var(--cream); overflow: hidden; color: var(--coral-dark); box-shadow: 0 18px 34px rgba(25,31,15,.16), 0 48px 90px rgba(25,31,15,.18); transform: rotate(.7deg); }
.city-sun { position: absolute; width: 160px; height: 160px; border-radius: 50%; background: var(--saffron); right: 12%; top: 12%; box-shadow: 0 0 0 24px rgba(221,168,58,.14); }
.city-line { position: absolute; left: -5%; width: 110%; height: 95px; border: 5px solid var(--coral); border-left: 0; border-right: 0; border-radius: 50%; opacity: .9; }
.line-a { bottom: 15%; transform: rotate(-3deg); }
.line-b { bottom: 2%; transform: rotate(5deg); border-color: var(--olive); }
.line-c { bottom: -12%; transform: rotate(-6deg); border-color: var(--saffron); }
.city-word { position: absolute; left: 8%; top: 12%; font-family: "Outfit", sans-serif; font-weight: 700; font-size: clamp(58px, 7vw, 106px); letter-spacing: -.07em; writing-mode: vertical-rl; transform: rotate(180deg); }
.city-caption { position: absolute; right: 7%; bottom: 7%; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; }

.news { background: var(--white); }
.news-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr; gap: 18px; }
.news-card { overflow: hidden; border-radius: var(--radius-lg); background: white; border: 1px solid rgba(32,34,30,.07); box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.news-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.news-art { height: 205px; display: grid; place-items: center; font-family: "Outfit", sans-serif; font-weight: 700; }
.featured-news .news-art { height: 285px; }
.fish-art { background: linear-gradient(155deg, var(--coral-soft), var(--coral)); color: var(--cream); font-size: 108px; }
.wave-art { background: var(--saffron-soft); color: var(--coral-dark); font-size: 106px; }
.sun-art { background: var(--olive); color: var(--cream); font-size: 84px; }
.news-content { padding: 27px; }
.news-content time { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; color: var(--coral-dark); }
.news-content h3 { margin: 8px 0 10px; font-family: "Outfit", sans-serif; font-size: 28px; line-height: 1.03; letter-spacing: -.038em; }
.news-content p { margin: 0; color: var(--muted); }
.news-link { display: inline-block; margin-top: 20px; font-size: 11px; font-weight: 800; }

.service { background: var(--saffron-soft); }
.service-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 94px; align-items: start; }
.service-list { padding: 8px 28px; border-radius: var(--radius-md); background: rgba(255,255,255,.38); border: 1px solid rgba(32,34,30,.09); box-shadow: var(--shadow-sm); }
.service-row { display: grid; grid-template-columns: 160px 1fr; gap: 22px; padding: 21px 0; border-bottom: 1px solid rgba(32,34,30,.16); }
.service-row:last-child { border-bottom: 0; }
.service-row span { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.service-row strong { font-size: 18px; }

.faq { background: var(--sand); }
.faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 100px; }
.faq-grid > div:first-child p { color: var(--muted); max-width: 430px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { list-style: none; cursor: pointer; padding: 22px 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-weight: 800; font-size: 18px; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { flex: 0 0 auto; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--cream); color: var(--coral-dark); box-shadow: var(--shadow-xs); transition: transform .2s ease; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: -4px 0 24px; padding-right: 48px; color: var(--muted); }

.site-footer { background: #1d1f1b; color: white; padding: 72px 0 24px; }
.footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.brand-footer .brand-copy small { color: rgba(255,255,255,.5); }
.footer-brand p { color: rgba(255,255,255,.52); }
.footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.footer-nav > div { display: grid; gap: 9px; align-content: start; }
.footer-nav strong { margin-bottom: 6px; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; color: var(--saffron); }
.footer-nav a { color: rgba(255,255,255,.7); font-size: 14px; transition: color .2s ease; }
.footer-nav a:hover { color: white; }
.footer-bottom { margin-top: 58px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.10); display: flex; justify-content: space-between; gap: 20px; color: rgba(255,255,255,.42); font-size: 12px; }

.poster-modal { width: min(92vw, 560px); border: 0; padding: 0; border-radius: 22px; box-shadow: 0 36px 120px rgba(0,0,0,.38); overflow: visible; }
.poster-modal::backdrop { background: rgba(22,18,16,.78); backdrop-filter: blur(10px); }
.poster-modal img { width: 100%; border-radius: 22px; }
.modal-close { position: absolute; right: -12px; top: -12px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--coral); color: white; font-size: 26px; cursor: pointer; box-shadow: var(--shadow-sm); }

/* Catalog pages */
.catalog-page { background: var(--sand); }
.catalog-page .site-footer { padding-top: 20px; }
.catalog-page .footer-bottom { margin-top: 0; }
.catalog-hero { position: relative; overflow: hidden; background: linear-gradient(145deg, #d85f4b, var(--coral)); color: white; padding: 92px 0 104px; }
.catalog-hero::after { content: ""; position: absolute; width: 360px; height: 360px; right: -130px; top: -120px; border: 60px solid rgba(241,227,204,.14); border-radius: 50%; }
.craft-catalog-hero { background: linear-gradient(145deg, #727a35, var(--olive-dark)); }
.catalog-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr .95fr; gap: 90px; align-items: center; }
.back-link { display: inline-flex; margin-bottom: 32px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; opacity: .78; }
.catalog-hero .section-kicker { color: var(--cream); }
.catalog-hero h1 { margin: 0; font-family: "Outfit", sans-serif; font-size: clamp(56px, 6vw, 90px); line-height: .91; letter-spacing: -.062em; }
.catalog-hero h1 em { color: var(--cream); font-style: normal; }
.catalog-hero p { max-width: 700px; margin: 26px 0 0; font-size: 19px; color: rgba(255,255,255,.78); }
.catalog-hero-object { position: relative; min-height: 360px; display: grid; place-items: center; color: var(--cream); }
.catalog-hero-object svg { position: relative; z-index: 2; width: 82%; filter: drop-shadow(0 18px 25px rgba(80,36,28,.17)); }
.catalog-hero-object > span { position: absolute; bottom: 8%; padding: 9px 13px; border-radius: 999px; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.18); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; backdrop-filter: blur(8px); }
.food-orbit { position: absolute; width: 310px; height: 310px; border: 42px solid rgba(241,227,204,.18); border-radius: 50%; }
.craft-object { color: var(--cream); }
.craft-weave { width: 290px; height: 290px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; transform: rotate(7deg); }
.craft-weave i { border: 3px solid currentColor; border-radius: 50% 40% 55% 42%; opacity: .8; box-shadow: 9px 10px 0 rgba(255,255,255,.07); }

.catalog-section { background: var(--sand); }
.catalog-toolbar { position: sticky; top: 102px; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px; margin-bottom: 26px; border-radius: 22px; background: rgba(255,253,248,.84); border: 1px solid rgba(32,34,30,.08); box-shadow: var(--shadow-sm); backdrop-filter: blur(16px); }
.search-box { flex: 1 1 330px; min-width: 250px; display: flex; align-items: center; gap: 10px; padding: 0 16px; min-height: 48px; border-radius: 14px; background: var(--sand); border: 1px solid rgba(32,34,30,.08); }
.search-box span { font-size: 24px; color: var(--muted); }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 14px; }
.filter-group { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.filter-chip { border: 1px solid var(--line); background: white; padding: 10px 13px; border-radius: 999px; cursor: pointer; font-size: 11px; font-weight: 800; transition: .2s ease; }
.filter-chip:hover { transform: translateY(-2px); box-shadow: var(--shadow-xs); }
.filter-chip.active { background: var(--ink); color: white; border-color: var(--ink); }
.catalog-status { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 14px 20px; margin: 0 0 32px; padding: 22px 24px; border-radius: var(--radius-md); background: var(--cream); border: 1px solid rgba(32,34,30,.07); box-shadow: var(--shadow-xs); }
.catalog-status span { font-size: 9px; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; color: var(--coral-dark); }
.catalog-status strong { font-family: "Outfit", sans-serif; font-size: 22px; }
.catalog-status p { margin: 0; color: var(--muted); font-size: 13px; }
.participant-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.participant-card { overflow: hidden; border-radius: var(--radius-lg); background: var(--white); border: 1px solid rgba(32,34,30,.07); box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.participant-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.participant-card[hidden] { display: none; }
.participant-media { position: relative; height: 250px; padding: 24px; display: flex; justify-content: space-between; align-items: flex-start; overflow: hidden; }
.participant-media::after { content: ""; position: absolute; width: 190px; height: 190px; border: 28px solid rgba(255,255,255,.16); border-radius: 50%; right: -45px; bottom: -65px; }
.participant-media span { position: relative; z-index: 2; width: 44px; height: 44px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font-size: 10px; font-weight: 800; }
.participant-media i { position: relative; z-index: 2; align-self: center; margin-right: 18%; font-style: normal; font-family: "Outfit", sans-serif; font-size: 96px; opacity: .74; filter: drop-shadow(0 12px 18px rgba(37,25,18,.10)); }
.media-gastro { background: var(--coral); color: var(--cream); }
.media-saffron { background: var(--saffron); color: var(--ink); }
.media-olive { background: var(--olive); color: white; }
.participant-body { padding: 26px; }
.participant-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.participant-meta span:last-child { color: var(--coral-dark); }
.participant-body h2 { margin: 12px 0 9px; font-family: "Outfit", sans-serif; font-size: 30px; line-height: 1; letter-spacing: -.04em; }
.participant-body p { margin: 0; color: var(--muted); font-size: 14px; }
.participant-foot { margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; align-items: center; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.participant-foot b { font-size: 20px; }
.catalog-empty { padding: 40px; text-align: center; color: var(--muted); }
.catalog-cta-section { padding: 0 0 120px; background: var(--sand); }
.catalog-bottom-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 42px; border-radius: var(--radius-lg); background: var(--cream); box-shadow: var(--shadow-sm); }
.catalog-bottom-cta span { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--coral-dark); }
.catalog-bottom-cta h2 { margin: 7px 0 0; font-family: "Outfit", sans-serif; font-size: clamp(32px, 4vw, 50px); line-height: 1; letter-spacing: -.045em; }

/* subtle reveal */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .72s cubic-bezier(.2,.65,.25,1), transform .72s cubic-bezier(.2,.65,.25,1); transition-delay: var(--delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1100px) {
  .main-nav { gap: 13px; font-size: 12px; }
  .hero-grid { gap: 34px; }
  .hero-art { min-height: 480px; }
  .hero-window { width: min(100%, 440px); }
  .about-layout { grid-template-columns: 1fr .52fr; }
  .section-copy { grid-row: 1; grid-column: 1; }
  .edition-note { grid-row: 2; grid-column: 1; align-self: start; }
  .poster-frame { grid-row: 1 / 3; grid-column: 2; }
  .path-grid { grid-template-columns: 1fr 1fr; }
  .path-gastro { grid-column: 1 / -1; min-height: 470px; }
  .path-gastro .path-visual { position: absolute; right: 5%; top: 12%; width: 42%; }
  .path-gastro .path-content { max-width: 58%; }
  .catalog-callouts { grid-template-columns: 1fr 1fr; }
  .catalog-intro { grid-column: 1 / -1; padding-right: 0; margin-bottom: 18px; }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .featured-news { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  .featured-news .news-art { height: 100%; min-height: 280px; }
  .participant-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 880px) {
  .utility-inner { justify-content: center; }
  .nav-inner { min-height: 74px; }
  .menu-toggle { display: block; }
  .main-nav {
    position: absolute; left: 20px; right: 20px; top: calc(100% + 10px); display: none; flex-direction: column; align-items: stretch; gap: 0;
    padding: 12px; background: rgba(255,253,248,.98); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-md); backdrop-filter: blur(18px);
  }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 12px 11px; border-radius: 11px; }
  .main-nav a:hover { background: var(--cream); }
  .main-nav a::after { display: none; }
  .nav-cta { margin-top: 5px; text-align: center; }
  .hero { min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; min-height: auto; padding-top: 70px; gap: 24px; }
  .hero-art { min-height: 430px; }
  .hero-window { width: min(76vw, 460px); }
  .floating-chip.chip-one { right: 8%; }
  .floating-chip.chip-two { left: 8%; }
  .floating-chip.chip-three { right: 11%; }
  .about-layout { grid-template-columns: 1fr; gap: 44px; }
  .section-copy, .edition-note, .poster-frame { grid-column: 1; grid-row: auto; }
  .edition-note { width: min(100%, 520px); }
  .poster-frame { width: min(100%, 520px); margin-inline: auto; }
  .schedule-header, .city-grid, .service-grid, .faq-grid, .catalog-hero-grid { grid-template-columns: 1fr; gap: 52px; }
  .memory-grid { grid-template-columns: 1fr; }
  .city-visual { min-height: 380px; }
  .service-row { grid-template-columns: 130px 1fr; }
  .footer-top { grid-template-columns: 1fr; }
  .catalog-hero-object { min-height: 300px; }
  .catalog-toolbar { position: static; align-items: stretch; flex-direction: column; }
  .filter-group { justify-content: flex-start; }
  .catalog-status { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .section { padding: 84px 0; }
  .utility-bar { display: none; }
  .brand-copy strong { font-size: 16px; }
  .brand-copy small { font-size: 8px; }
  .hero-grid { padding-top: 56px; padding-bottom: 104px; }
  .hero h1 { font-size: clamp(54px, 16vw, 78px); }
  .hero-lead { font-size: 17px; }
  .hero-meta { grid-template-columns: 1fr; }
  .hero-meta > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .hero-art { min-height: 330px; }
  .hero-window { width: min(86vw, 410px); border-radius: 42% 42% 20% 20% / 34% 34% 20% 20%; }
  .hero-orbit { display: none; }
  .floating-chip { font-size: 8px; padding: 8px 10px; }
  .ticker-track { justify-content: flex-start; height: 50px; font-size: 16px; }
  .section h2 { font-size: clamp(40px, 12vw, 58px); }
  .section-copy p { font-size: 16px; }
  .edition-number { font-size: 72px; }
  .section-heading { align-items: start; flex-direction: column; margin-bottom: 38px; }
  .path-grid { grid-template-columns: 1fr; }
  .path-card, .path-gastro { grid-column: auto; min-height: 440px; padding: 24px; }
  .path-gastro .path-visual { position: relative; right: auto; top: auto; width: auto; }
  .path-gastro .path-content { max-width: none; }
  .path-visual { min-height: 160px; }
  .plate-ring { width: 160px; height: 160px; border-width: 18px; }
  .music-visual { padding-inline: 24%; }
  .catalog-callouts, .participant-grid, .news-grid { grid-template-columns: 1fr; }
  .catalog-callout { min-height: 280px; }
  .featured-news { grid-column: auto; display: block; }
  .featured-news .news-art { height: 220px; min-height: 0; }
  .schedule-card { padding: 14px 18px 4px; border-radius: 24px; }
  .schedule-item { grid-template-columns: 1fr; gap: 10px; padding: 24px 0; }
  .status { justify-self: start; }
  .memory-card { grid-template-columns: 92px 1fr; min-height: 360px; }
  .memory-year { font-size: 50px; }
  .memory-body { padding: 28px 22px; }
  .memory-body h3 { font-size: 29px; }
  .city-visual { min-height: 320px; }
  .service-list { padding: 4px 20px; }
  .service-row { grid-template-columns: 1fr; gap: 5px; }
  .service-row strong { font-size: 17px; }
  .footer-nav { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; }
  .catalog-hero { padding: 66px 0 76px; }
  .catalog-hero h1 { font-size: clamp(52px, 15vw, 74px); }
  .catalog-hero p { font-size: 17px; }
  .catalog-hero-object { min-height: 240px; }
  .food-orbit { width: 240px; height: 240px; border-width: 34px; }
  .craft-weave { width: 230px; height: 230px; }
  .search-box { min-width: 0; }
  .filter-group { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .filter-chip { flex: 0 0 auto; }
  .participant-media { height: 220px; }
  .catalog-bottom-cta { align-items: flex-start; flex-direction: column; padding: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}

/* =========================================================
   V3 • camada editorial, profundidade e storytelling
   ========================================================= */
:root {
  --shadow-air: 0 1px 1px rgba(42,34,28,.04), 0 7px 18px rgba(42,34,28,.055), 0 24px 52px rgba(42,34,28,.07);
  --shadow-card: 0 1px 0 rgba(255,255,255,.78) inset, 0 1px 2px rgba(45,34,27,.06), 0 11px 24px rgba(45,34,27,.08), 0 32px 68px rgba(45,34,27,.10);
  --shadow-card-hover: 0 1px 0 rgba(255,255,255,.86) inset, 0 2px 5px rgba(45,34,27,.07), 0 18px 34px rgba(45,34,27,.11), 0 44px 90px rgba(45,34,27,.14);
  --shadow-dark: 0 1px 0 rgba(255,255,255,.14) inset, 0 15px 28px rgba(25,22,18,.16), 0 38px 88px rgba(25,22,18,.19);
}

body { background: #fffdf9; }
.hero {
  background:
    radial-gradient(circle at 74% 20%, rgba(239,225,204,.16), transparent 27%),
    radial-gradient(circle at 19% 74%, rgba(208,161,79,.13), transparent 28%),
    linear-gradient(128deg, #bd5848 0%, var(--coral) 48%, #c96a55 100%);
}
.brand-mark { background: linear-gradient(145deg, #d77d6c, var(--coral)); }
.nav-shell { box-shadow: 0 1px 0 rgba(255,255,255,.72) inset, 0 10px 30px rgba(31,27,22,.055); }
.btn { box-shadow: 0 1px 0 rgba(255,255,255,.16) inset; }
.btn-dark { box-shadow: 0 1px 0 rgba(255,255,255,.11) inset, 0 8px 18px rgba(27,24,20,.12), 0 20px 46px rgba(27,24,20,.12); }
.btn-dark:hover { box-shadow: 0 1px 0 rgba(255,255,255,.14) inset, 0 12px 24px rgba(27,24,20,.15), 0 30px 64px rgba(27,24,20,.16); }

/* Os três caminhos ganham presença e leitura tátil */
.paths { background: linear-gradient(180deg, var(--sand) 0%, #f4ece0 100%); }
.path-grid { gap: 24px; }
.path-card {
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: var(--shadow-card);
  isolation: isolate;
}
.path-card::before {
  content: "";
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(460px circle at var(--mx, 70%) var(--my, 20%), rgba(255,255,255,.18), transparent 42%);
  opacity: .72;
  transition: opacity .25s ease;
}
.path-card::after { z-index: 2; box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 -1px 0 rgba(31,26,21,.06); }
.path-card:hover { box-shadow: var(--shadow-card-hover); }
.path-gastro { background: linear-gradient(150deg, #d06a57 0%, #bd5545 78%); }
.path-music { background: linear-gradient(150deg, #838954 0%, #686f3f 78%); }
.path-craft { background: linear-gradient(150deg, #dab464 0%, #c89a46 78%); }
.path-topline, .path-content, .path-visual { position: relative; z-index: 4; }
.path-card h3 { text-shadow: 0 2px 20px rgba(35,25,20,.09); }
.path-link {
  width: fit-content; padding: 10px 14px; border-radius: 999px;
  background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 8px 18px rgba(38,29,23,.07);
  backdrop-filter: blur(8px);
}
.path-craft .path-link { background: rgba(255,253,248,.26); border-color: rgba(35,36,31,.09); }

/* Ponte narrativa entre os caminhos e o restante da home */
.makers-bridge { padding: 0 0 18px; background: linear-gradient(180deg, #f4ece0 0%, var(--white) 100%); }
.makers-bridge-inner {
  position: relative; display: grid; grid-template-columns: .45fr 1.25fr .8fr; gap: 34px; align-items: center;
  padding: 34px 38px; border-radius: 30px; overflow: hidden;
  background: rgba(255,253,248,.75); border: 1px solid rgba(35,36,31,.075);
  box-shadow: var(--shadow-air); backdrop-filter: blur(15px);
}
.makers-bridge-inner::after { content:""; position:absolute; width:260px; height:260px; border-radius:50%; right:-120px; top:-140px; border:42px solid rgba(201,95,77,.07); pointer-events:none; }
.makers-bridge-kicker { display:flex; align-items:center; gap:14px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--coral-dark); }
.makers-bridge-kicker i { width:48px; height:1px; background:currentColor; }
.makers-bridge-inner > p { margin:0; font-family:"Outfit",sans-serif; font-size:clamp(20px,2vw,29px); line-height:1.18; letter-spacing:-.028em; }
.makers-bridge-links { display:grid; gap:9px; }
.makers-bridge-links a { display:flex; justify-content:space-between; gap:18px; padding:12px 0; border-bottom:1px solid var(--line); font-size:11px; font-weight:800; }
.makers-bridge-links a span { transition:transform .2s ease; }
.makers-bridge-links a:hover span { transform:translate(4px,-4px); }

/* Catálogos: mais editorial, menos template */
.catalog-page { background: #f7f1e8; }
.catalog-hero { padding: 104px 0 116px; min-height: 650px; display:grid; align-items:center; }
.gastro-catalog-hero { background: linear-gradient(132deg, #b84f42 0%, #c66050 58%, #ae4d40 100%); }
.craft-catalog-hero { background: linear-gradient(132deg, #56603c 0%, #727a49 58%, #626a3f 100%); }
.catalog-hero-grain { position:absolute; inset:0; opacity:.15; pointer-events:none; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.36'/%3E%3C/svg%3E"); }
.catalog-hero-grid { grid-template-columns: 1.05fr .95fr; }
.catalog-hero h1 { max-width:780px; }
.catalog-hero-tags { display:flex; flex-wrap:wrap; gap:9px; margin-top:30px; }
.catalog-hero-tags span { padding:9px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.075); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.catalog-story-object { position:relative; min-height:390px; display:grid; place-items:center; }
.story-portrait-card {
  position:relative; width:min(84%,390px); aspect-ratio:.8; border-radius:36px; overflow:hidden;
  background:rgba(247,241,232,.93); color:var(--ink); transform:rotate(2deg);
  border:1px solid rgba(255,255,255,.3); box-shadow:0 1px 0 rgba(255,255,255,.75) inset, 0 22px 42px rgba(46,31,25,.18), 0 56px 95px rgba(46,31,25,.22);
}
.story-portrait-card::before { content:""; position:absolute; inset:16px; border:1px solid rgba(35,36,31,.10); border-radius:26px; }
.story-caption { position:absolute; left:30px; right:30px; top:30px; z-index:3; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }
.story-face { position:absolute; width:176px; height:220px; left:50%; top:50%; transform:translate(-50%,-46%); }
.story-face i { position:absolute; width:98px; height:98px; border-radius:50%; top:4px; left:39px; background:linear-gradient(145deg, rgba(35,36,31,.12), rgba(35,36,31,.20)); box-shadow:inset 0 4px 8px rgba(255,255,255,.2); }
.story-face b { position:absolute; width:158px; height:120px; border-radius:75px 75px 22px 22px; bottom:0; left:9px; background:linear-gradient(145deg, rgba(35,36,31,.15), rgba(35,36,31,.24)); }
.story-portrait-food::after { content:""; position:absolute; width:145px; height:145px; border:25px solid rgba(201,95,77,.20); border-radius:50%; right:-28px; bottom:-35px; }
.story-portrait-craft::after { content:""; position:absolute; width:160px; height:160px; background:repeating-linear-gradient(45deg, rgba(116,122,69,.16) 0 8px, transparent 8px 18px); right:-22px; bottom:-14px; transform:rotate(10deg); }
.story-lines { position:absolute; left:28px; right:28px; bottom:30px; display:grid; gap:6px; }
.story-lines i { height:3px; border-radius:99px; background:rgba(201,95,77,.25); }
.story-lines i:nth-child(2){width:72%}.story-lines i:nth-child(3){width:42%}
.weave-mark { position:absolute; left:30px; right:30px; bottom:34px; display:flex; gap:8px; }
.weave-mark i { flex:1; height:34px; border-radius:999px; background:rgba(116,122,69,.20); transform:rotate(-12deg); }
.object-note { position:absolute; right:4%; bottom:3%; padding:10px 14px; border-radius:999px; background:rgba(35,36,31,.80); color:white; border:1px solid rgba(255,255,255,.12); box-shadow:var(--shadow-sm); font-size:9px; text-transform:uppercase; letter-spacing:.11em; font-weight:800; }

.catalog-section { background: linear-gradient(180deg, #f7f1e8 0%, #f5ede2 100%); padding-top: 92px; }
.catalog-intro-band {
  display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center; margin-bottom:24px; padding:22px 24px;
  border-radius:24px; background:rgba(255,253,249,.82); border:1px solid rgba(35,36,31,.07); box-shadow:var(--shadow-air); backdrop-filter:blur(14px);
}
.catalog-intro-band > span { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:white; font-family:"Outfit",sans-serif; font-weight:700; }
.catalog-intro-band strong { font-family:"Outfit",sans-serif; font-size:23px; letter-spacing:-.025em; }
.catalog-intro-band p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.catalog-intro-band > i { font-style:normal; font-size:25px; color:var(--coral-dark); }
.catalog-toolbar { top: 100px; box-shadow: 0 1px 0 rgba(255,255,255,.84) inset, 0 8px 18px rgba(42,34,28,.06), 0 24px 54px rgba(42,34,28,.08); }
.search-box { box-shadow: inset 0 1px 3px rgba(36,30,25,.04); }
.filter-chip { box-shadow: inset 0 1px 0 rgba(255,255,255,.74); }
.filter-chip.active { box-shadow: 0 8px 17px rgba(35,36,31,.13), inset 0 1px 0 rgba(255,255,255,.10); }
.catalog-status { background: rgba(239,225,204,.74); box-shadow: 0 1px 0 rgba(255,255,255,.76) inset, 0 8px 18px rgba(50,39,31,.05), 0 22px 48px rgba(50,39,31,.06); }
.story-grid { gap:24px; }
.story-card {
  position:relative; color:var(--ink); background:rgba(255,253,249,.96); border:1px solid rgba(35,36,31,.07);
  box-shadow:var(--shadow-card); transform-style:preserve-3d; isolation:isolate;
}
.story-card::before { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:inherit; background:radial-gradient(360px circle at var(--mx,70%) var(--my,20%), rgba(255,255,255,.72), transparent 42%); opacity:.42; }
.story-card::after { content:""; position:absolute; inset:0; z-index:3; pointer-events:none; border-radius:inherit; box-shadow:inset 0 1px 0 rgba(255,255,255,.84), inset 0 -1px 0 rgba(35,36,31,.03); }
.story-card:hover { transform:translateY(-9px); box-shadow:var(--shadow-card-hover); }
.story-card .participant-media, .story-card .participant-body { position:relative; z-index:1; }
.portrait-media { height:290px; align-items:flex-start; }
.portrait-media::before { content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.26); border-radius:22px; }
.portrait-media small { position:absolute; left:24px; bottom:22px; z-index:4; font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; opacity:.72; }
.portrait-symbol { position:absolute; left:50%; top:51%; transform:translate(-50%,-50%); width:125px; height:160px; z-index:3; filter:drop-shadow(0 14px 20px rgba(37,27,21,.12)); }
.portrait-symbol i { position:absolute; width:66px; height:66px; left:30px; top:4px; border-radius:50%; background:currentColor; opacity:.26; }
.portrait-symbol b { position:absolute; width:112px; height:88px; left:7px; bottom:0; border-radius:58px 58px 18px 18px; background:currentColor; opacity:.24; }
.story-card .participant-body { padding:29px; }
.story-card .participant-body h2 { font-size:32px; }
.story-card .participant-foot { margin-top:30px; }
.story-card .participant-foot b { transition:transform .22s ease; }
.story-card:hover .participant-foot b { transform:translate(4px,-4px); }

/* Páginas individuais de storytelling */
.story-page { background:#fffdf9; }
.profile-hero { position:relative; overflow:hidden; padding:96px 0 112px; background:linear-gradient(180deg,#f7f1e8 0%,#f1e7d9 100%); }
.profile-hero::before { content:""; position:absolute; width:620px; height:620px; left:-360px; top:-220px; border:88px solid rgba(201,95,77,.075); border-radius:50%; }
.story-craft .profile-hero::before { border-color:rgba(116,122,69,.09); }
.profile-hero-glow { position:absolute; width:520px; height:520px; right:-180px; bottom:-260px; border-radius:50%; background:radial-gradient(circle, rgba(208,161,79,.18), transparent 66%); }
.profile-hero-grid { position:relative; display:grid; grid-template-columns:1.02fr .98fr; gap:86px; align-items:center; }
.profile-copy { max-width:710px; }
.profile-back { color:var(--muted); margin-bottom:38px; }
.profile-eyebrow { margin-bottom:18px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--coral-dark); }
.story-craft .profile-eyebrow { color:var(--olive-dark); }
.profile-copy h1 { margin:0; font-family:"Outfit",sans-serif; font-size:clamp(58px,7.2vw,104px); line-height:.88; letter-spacing:-.067em; font-weight:600; }
.profile-role { margin:22px 0 0; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.11em; color:var(--muted); }
.profile-lead { margin:28px 0 0; max-width:670px; font-size:20px; line-height:1.5; color:var(--ink-soft); }
.profile-tags { display:flex; flex-wrap:wrap; gap:9px; margin-top:32px; }
.profile-tags span { padding:9px 12px; border-radius:999px; background:rgba(255,253,249,.68); border:1px solid rgba(35,36,31,.08); box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 6px 13px rgba(44,34,27,.05); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.profile-portrait { position:relative; min-height:580px; display:grid; place-items:center; }
.profile-number { position:absolute; left:0; top:34px; z-index:4; font-family:"Outfit",sans-serif; font-size:72px; line-height:1; font-weight:700; letter-spacing:-.07em; color:var(--coral); opacity:.42; }
.story-craft .profile-number { color:var(--olive); }
.profile-photo-placeholder {
  position:relative; width:min(86%,430px); aspect-ratio:.77; overflow:hidden; display:grid; place-items:end center; padding:34px;
  border-radius:42% 42% 28px 28px / 28% 28% 28px 28px; background:linear-gradient(155deg,#dacdbd,#cfc0ad); color:rgba(35,36,31,.63);
  border:1px solid rgba(255,255,255,.62); box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 22px 42px rgba(49,38,31,.12), 0 58px 100px rgba(49,38,31,.15);
}
.story-craft .profile-photo-placeholder { background:linear-gradient(155deg,#d7d6c3,#c5c7ad); }
.profile-photo-placeholder::after { content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.34); border-radius:inherit; }
.portrait-head { position:absolute; width:132px; height:132px; border-radius:50%; top:24%; left:50%; transform:translateX(-50%); background:rgba(35,36,31,.14); box-shadow:inset 0 5px 10px rgba(255,255,255,.14); }
.portrait-body { position:absolute; width:245px; height:190px; border-radius:120px 120px 26px 26px; bottom:14%; left:50%; transform:translateX(-50%); background:rgba(35,36,31,.12); }
.profile-photo-placeholder > span { position:relative; z-index:4; text-align:center; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.profile-photo-caption { position:absolute; right:0; bottom:48px; z-index:5; display:grid; gap:2px; padding:13px 15px; min-width:190px; border-radius:16px; background:rgba(255,253,249,.78); border:1px solid rgba(255,255,255,.66); box-shadow:var(--shadow-air); backdrop-filter:blur(12px); }
.profile-photo-caption span { font-size:8px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); font-weight:800; }
.profile-photo-caption strong { font-size:11px; }

.profile-story-section { padding:126px 0; background:#fffdf9; }
.profile-story-grid { display:grid; grid-template-columns:150px 1fr; gap:60px; max-width:1030px; }
.story-rail { padding-top:6px; display:grid; grid-template-columns:32px 1fr; gap:8px 12px; align-content:start; position:sticky; top:130px; align-self:start; }
.story-rail span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:white; font-size:8px; font-weight:800; }
.story-rail p { margin:5px 0 0; font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; color:var(--muted); }
.story-rail i { grid-column:1; height:44px; width:1px; margin-left:15px; background:var(--line); }
.story-chapter-label { font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.13em; color:var(--coral-dark); }
.story-craft .story-chapter-label { color:var(--olive-dark); }
.story-chapter h2, .process-copy h2, .festival-profile-main h2 { margin:13px 0 24px; font-family:"Outfit",sans-serif; font-size:clamp(45px,5vw,72px); line-height:.98; letter-spacing:-.052em; }
.story-chapter > p { max-width:830px; color:var(--muted); font-size:17px; line-height:1.75; }
.story-chapter .story-big { color:var(--ink); font-family:"Outfit",sans-serif; font-size:clamp(24px,2.6vw,35px); line-height:1.35; letter-spacing:-.026em; }
.story-chapter blockquote { position:relative; margin:55px 0 0; padding:38px 42px 38px 75px; border-radius:28px; background:var(--sand); border:1px solid rgba(35,36,31,.07); box-shadow:var(--shadow-air); }
.story-chapter blockquote > span { position:absolute; left:26px; top:18px; font-family:Georgia,serif; font-size:72px; color:var(--coral); line-height:1; }
.story-craft .story-chapter blockquote > span { color:var(--olive); }
.story-chapter blockquote p { margin:0; font-family:"Outfit",sans-serif; font-size:23px; line-height:1.38; letter-spacing:-.02em; }

.profile-gallery-section { padding:118px 0; background:var(--ink); color:white; overflow:hidden; }
.profile-gallery-section::before { content:""; position:absolute; width:420px; height:420px; right:-180px; margin-top:-200px; border:60px solid rgba(208,161,79,.10); border-radius:50%; }
.profile-section-heading { display:grid; grid-template-columns:.45fr 1.1fr 1fr; gap:34px; align-items:end; margin-bottom:48px; }
.profile-section-heading > span { font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.13em; color:var(--saffron-soft); }
.profile-section-heading h2 { margin:0; font-family:"Outfit",sans-serif; font-size:clamp(42px,5vw,68px); line-height:.95; letter-spacing:-.05em; }
.profile-section-heading p { margin:0; color:rgba(255,255,255,.62); }
.profile-gallery { display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:repeat(2,260px); gap:20px; }
.gallery-card { margin:0; display:grid; grid-template-rows:1fr auto; gap:11px; }
.gallery-tall { grid-row:1 / 3; }
.gallery-placeholder { position:relative; overflow:hidden; min-height:0; border-radius:28px; background:linear-gradient(145deg,#4a4a42,#30312c); border:1px solid rgba(255,255,255,.09); box-shadow:var(--shadow-dark); }
.gallery-placeholder::before { content:""; position:absolute; width:230px; height:230px; left:50%; top:50%; transform:translate(-50%,-50%); border:38px solid rgba(255,255,255,.065); border-radius:50%; }
.gallery-placeholder span { position:absolute; left:22px; top:20px; width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.24); border-radius:50%; font-size:8px; font-weight:800; }
.gallery-placeholder b { position:absolute; left:22px; bottom:20px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.gallery-card figcaption { color:rgba(255,255,255,.52); font-size:11px; }

.profile-process-section { padding:126px 0; background:var(--sand); }
.process-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:92px; align-items:start; }
.process-copy p { max-width:600px; color:var(--muted); font-size:17px; }
.process-steps { display:grid; gap:14px; }
.process-steps > div { display:grid; grid-template-columns:54px 180px 1fr; gap:18px; align-items:center; padding:24px; border-radius:24px; background:rgba(255,253,249,.86); border:1px solid rgba(35,36,31,.07); box-shadow:var(--shadow-air); transition:transform .22s ease, box-shadow .22s ease; }
.process-steps > div:hover { transform:translateX(5px); box-shadow:var(--shadow-card); }
.process-steps span { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--coral); color:white; font-size:9px; font-weight:800; box-shadow:0 7px 15px rgba(166,73,60,.18); }
.story-craft .process-steps span { background:var(--olive); box-shadow:0 7px 15px rgba(88,96,57,.18); }
.process-steps strong { font-family:"Outfit",sans-serif; font-size:21px; }
.process-steps p { margin:0; color:var(--muted); font-size:13px; }

.festival-profile-card-section { padding:0 0 126px; background:var(--sand); }
.festival-profile-card { display:grid; grid-template-columns:1.12fr .88fr; gap:70px; padding:54px; border-radius:36px; background:linear-gradient(145deg,#c96350,#b95243); color:white; box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 18px 32px rgba(76,41,31,.12), 0 46px 90px rgba(76,41,31,.17); }
.story-craft .festival-profile-card { background:linear-gradient(145deg,#737b49,#5c643d); }
.festival-profile-card .story-chapter-label { color:rgba(255,255,255,.65); }
.festival-profile-main p { margin:0; max-width:640px; color:rgba(255,255,255,.72); }
.festival-profile-facts { margin:0; overflow:hidden; border-radius:24px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.13); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); backdrop-filter:blur(12px); }
.festival-profile-facts div { display:grid; grid-template-columns:145px 1fr; gap:18px; padding:18px 20px; border-bottom:1px solid rgba(255,255,255,.11); }
.festival-profile-facts div:last-child { border-bottom:0; }
.festival-profile-facts dt { font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.11em; opacity:.62; }
.festival-profile-facts dd { margin:0; font-weight:700; }

.profile-next-section { padding:0 0 110px; background:#fffdf9; }
.profile-next { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.profile-next a { display:grid; gap:5px; padding:28px 0; }
.profile-next a + a { padding-left:34px; border-left:1px solid var(--line); }
.profile-next a span { font-size:8px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); font-weight:800; }
.profile-next a strong { font-family:"Outfit",sans-serif; font-size:20px; }
.profile-next .next-story { text-align:right; }

/* Ajustes responsivos da nova camada */
@media (max-width: 980px) {
  .makers-bridge-inner { grid-template-columns:1fr; }
  .catalog-story-object { min-height:340px; }
  .profile-hero-grid { gap:40px; }
  .profile-portrait { min-height:500px; }
  .profile-story-grid { grid-template-columns:100px 1fr; gap:36px; }
  .profile-section-heading { grid-template-columns:1fr; }
  .process-layout, .festival-profile-card { grid-template-columns:1fr; gap:48px; }
}
@media (max-width: 780px) {
  .catalog-hero { min-height:0; padding:76px 0 84px; }
  .catalog-hero-grid, .profile-hero-grid { grid-template-columns:1fr; }
  .catalog-story-object { min-height:320px; margin-top:10px; }
  .story-portrait-card { width:min(72vw,360px); }
  .profile-hero { padding:72px 0 84px; }
  .profile-portrait { min-height:470px; }
  .profile-photo-placeholder { width:min(72vw,400px); }
  .profile-number { left:8%; }
  .profile-photo-caption { right:7%; }
  .profile-story-grid { grid-template-columns:1fr; }
  .story-rail { display:none; }
  .profile-gallery { grid-template-columns:1fr; grid-template-rows:auto; }
  .gallery-tall { grid-row:auto; }
  .gallery-placeholder { min-height:310px; }
  .process-steps > div { grid-template-columns:50px 1fr; }
  .process-steps p { grid-column:2; }
}
@media (max-width: 650px) {
  .makers-bridge-inner { padding:26px; border-radius:24px; }
  .catalog-intro-band { grid-template-columns:auto 1fr; }
  .catalog-intro-band > i { display:none; }
  .portrait-media { height:250px; }
  .story-card .participant-body { padding:24px; }
  .profile-copy h1 { font-size:clamp(52px,15vw,76px); }
  .profile-lead { font-size:17px; }
  .profile-portrait { min-height:410px; }
  .profile-photo-placeholder { width:min(82vw,370px); }
  .profile-photo-caption { bottom:22px; right:0; }
  .profile-story-section, .profile-gallery-section, .profile-process-section { padding:88px 0; }
  .story-chapter blockquote { padding:68px 25px 30px; }
  .story-chapter blockquote > span { left:24px; top:14px; }
  .gallery-placeholder { min-height:260px; }
  .process-steps > div { padding:20px; }
  .festival-profile-card { padding:31px 24px; border-radius:28px; }
  .festival-profile-facts div { grid-template-columns:1fr; gap:5px; }
  .profile-next { grid-template-columns:1fr; }
  .profile-next a + a { padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .profile-next .next-story { text-align:left; }
}


/* ==========================================================================
   REFINO V4 — ticker, fotografias reais, cards responsivos e seções unificadas
   ========================================================================== */

:root {
  --site-bg: #fffdf9;
  --sea-mist: #dde8e4;
  --sea-ink: #405b56;
}

/* 1) Linha de aviso contínua acima do header. O conteúdo é duplicado no HTML
   para o loop ser contínuo, sem "buraco" visual no fim da animação. */
.notice-ticker {
  position: relative;
  z-index: 1100;
  overflow: hidden;
  background: #4d5f47;
  color: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.notice-ticker-track {
  display: flex;
  width: max-content;
  min-width: 200%;
  will-change: transform;
  animation: noticeTicker 28s linear infinite;
}
.notice-ticker-group {
  flex: 0 0 auto;
  min-width: 50%;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 30px;
  padding-inline: 26px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
  white-space: nowrap;
}
.notice-ticker-group i { color: var(--saffron-soft); font-style: normal; font-size: 8px; }
@keyframes noticeTicker { to { transform: translateX(-50%); } }

/* O header fica preso logo abaixo da barra de aviso. */
.site-header { top: 0; }

/* 2) Hero: mais peso para data/local/chamada e fotografia em lugar da arte fake. */
.hero-grid { grid-template-columns: 1.08fr .92fr; gap: clamp(46px, 6vw, 86px); }
.hero h1 { font-size: clamp(70px, 7.7vw, 116px); font-weight: 700; line-height: .86; }
.hero-lead { font-size: clamp(20px, 1.85vw, 26px); font-weight: 500; line-height: 1.38; }
.hero-meta { max-width: 690px; margin-top: 38px; }
.hero-meta > div { padding: 20px 22px; }
.hero-meta span { font-size: 10px; font-weight: 800; }
.hero-meta strong { font-family: "Outfit", sans-serif; font-size: clamp(23px, 2vw, 30px); line-height: 1; }
.hero-meta small { margin-top: 4px; font-size: 12px; }

.hero-media {
  position: relative;
  margin: 0;
  min-height: 570px;
  border-radius: 42px 42px 120px 42px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.30);
  box-shadow: 0 1px 0 rgba(255,255,255,.48) inset, 0 22px 44px rgba(77,35,27,.20), 0 58px 110px rgba(77,35,27,.18);
  transform: rotate(1deg);
  isolation: isolate;
}
.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 38%, rgba(25,27,22,.12) 60%, rgba(25,27,22,.68) 100%);
}
.hero-media img { width: 100%; height: 100%; min-height: 570px; object-fit: cover; }
.hero-media figcaption { position: absolute; z-index: 3; left: 30px; right: 30px; bottom: 30px; color: white; display: grid; gap: 7px; }
.hero-media figcaption span { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; opacity: .74; }
.hero-media figcaption strong { max-width: 430px; font-family: "Outfit", sans-serif; font-size: clamp(22px, 2vw, 30px); line-height: 1.1; }
.hero-photo-badge { position: absolute; z-index: 3; top: 24px; right: 24px; padding: 10px 14px; border-radius: 999px; background: rgba(255,253,249,.83); color: var(--ink); border: 1px solid rgba(255,255,255,.74); box-shadow: var(--shadow-air); backdrop-filter: blur(14px); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }

/* 3 + 4) Três caminhos: todos começam com exatamente o mesmo espaço.
   Ao passar o mouse, o card ativo cresce e os irmãos cedem espaço sem sumir. */
.path-grid {
  display: flex;
  gap: 22px;
  align-items: stretch;
}
.path-card {
  flex: 1 1 0;
  min-width: 0;
  min-height: 570px;
  transition: flex-grow .46s cubic-bezier(.2,.7,.2,1), transform .28s ease, box-shadow .32s ease, filter .3s ease;
}
.path-grid:hover .path-card:not(:hover) { flex-grow: .86; filter: saturate(.92) brightness(.98); }
.path-grid .path-card:hover { flex-grow: 1.28; }
.path-visual {
  min-height: 230px;
  margin: 20px -4px 12px;
  border-radius: 24px;
  overflow: hidden;
  display: block;
  box-shadow: 0 1px 0 rgba(255,255,255,.22) inset, 0 14px 28px rgba(32,25,21,.14), 0 30px 58px rgba(32,25,21,.11);
  transform: translateZ(28px);
}
.path-visual img { width: 100%; height: 230px; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.path-card:hover .path-visual { transform: translateZ(42px); }
.path-card:hover .path-visual img { transform: scale(1.055); }
.path-photo-label { position: absolute; z-index: 2; left: 14px; bottom: 14px; padding: 8px 10px; border-radius: 999px; background: rgba(255,253,249,.82); color: var(--ink); border: 1px solid rgba(255,255,255,.70); backdrop-filter: blur(10px); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .10em; }
.path-card h3 { font-size: clamp(36px, 3.2vw, 52px); }
.path-card p { font-size: 14px; }

/* Aproxima o card editorial secundário dos três caminhos. */
.paths { padding-bottom: 86px; }
.makers-bridge { margin-top: -38px; padding-bottom: 28px; }

/* 5) Programação: mesma base do site e card interno com profundidade. */
.schedule {
  background: var(--site-bg);
  color: var(--ink);
}
.schedule::before { border-color: rgba(116,122,69,.09); }
.schedule-header p { color: var(--muted); }
.schedule .section-kicker { color: var(--coral-dark); }
.schedule-card {
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(35,36,31,.11);
  box-shadow: 0 1px 0 rgba(255,255,255,.96) inset, 0 12px 28px rgba(47,37,30,.08), 0 36px 82px rgba(47,37,30,.11);
  backdrop-filter: blur(18px);
}
.schedule-tab { border-color: var(--line); background: var(--sand); color: var(--ink); }
.schedule-tab:hover { background: var(--sand-2); }
.schedule-tab.active { background: var(--coral); color: white; border-color: var(--coral); box-shadow: 0 8px 20px rgba(166,73,60,.16); }
.schedule-panel { border-top-color: var(--line); }
.schedule-item { border-bottom-color: var(--line); }
.schedule-item time { color: var(--coral-dark); }
.schedule-item p { color: var(--muted); }
.category { color: var(--olive-dark); }
.status { color: var(--ink-soft); border-color: var(--line); background: var(--sand); }

/* 6) Itarema: retira o bloco verde e usa a mesma superfície do restante do site. */
.city { background: var(--site-bg); color: var(--ink); }
.city .section-kicker { color: var(--coral-dark); }
.city-copy p { color: var(--muted); }
.city .btn-ghost { color: var(--ink); border-color: var(--line); background: rgba(255,255,255,.50); }
.city .btn-ghost:hover { background: var(--sand); }
.city-visual {
  margin: 0;
  position: relative;
  min-height: 470px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--sand);
  border: 1px solid rgba(35,36,31,.08);
  box-shadow: 0 1px 0 rgba(255,255,255,.88) inset, 0 18px 36px rgba(43,34,27,.10), 0 46px 88px rgba(43,34,27,.12);
  transform: rotate(.35deg);
}
.city-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 44%, rgba(28,31,26,.62)); }
.city-visual img { width: 100%; height: 470px; object-fit: cover; }
.city-visual figcaption { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 26px; color: white; display: grid; gap: 5px; }
.city-visual figcaption span { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; opacity: .74; }
.city-visual figcaption strong { font-family: "Outfit", sans-serif; font-size: 25px; line-height: 1.08; }

/* 4) Notícias: mesma lógica de expansão dos cards, partindo de tamanhos iguais. */
.news-grid { display: flex; gap: 18px; align-items: stretch; }
.news-card { flex: 1 1 0; min-width: 0; transition: flex-grow .44s cubic-bezier(.2,.7,.2,1), transform .28s ease, box-shadow .28s ease, opacity .28s ease; }
.news-grid:hover .news-card:not(:hover) { flex-grow: .90; opacity: .91; }
.news-grid .news-card:hover { flex-grow: 1.22; }
.news-media { width: 100%; height: 235px; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.news-card:hover .news-media { transform: scale(1.035); }
.featured-news .news-media { height: 235px; }
.news-content h3 { font-size: clamp(24px, 2.25vw, 30px); }

/* 7) "O essencial, sem ruído": contraste complementar em verde-azulado dessaturado,
   inspirado em água/maré e suficientemente neutro para não competir com o coral. */
.service {
  background: linear-gradient(135deg, #e6eeeb 0%, var(--sea-mist) 100%);
}
.service .section-kicker { color: var(--sea-ink); }
.service-list {
  background: rgba(255,255,255,.58);
  border-color: rgba(64,91,86,.14);
  box-shadow: 0 1px 0 rgba(255,255,255,.82) inset, 0 12px 26px rgba(55,76,71,.07), 0 34px 70px rgba(55,76,71,.08);
}
.service-row { border-bottom-color: rgba(64,91,86,.16); }

/* Fotografias reais nos catálogos e perfis. As legendas deixam explícito que
   são imagens editoriais temporárias, evitando sugerir que retratam o participante. */
.catalog-photo-card {
  position: relative;
  margin: 0;
  width: min(88%, 430px);
  aspect-ratio: .82;
  overflow: hidden;
  border-radius: 36px;
  transform: rotate(2deg);
  border: 1px solid rgba(255,255,255,.32);
  box-shadow: 0 1px 0 rgba(255,255,255,.70) inset, 0 22px 42px rgba(46,31,25,.18), 0 56px 95px rgba(46,31,25,.22);
}
.catalog-photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(23,25,21,.64)); }
.catalog-photo-card img { width:100%; height:100%; object-fit:cover; }
.catalog-photo-card figcaption { position:absolute; z-index:2; left:22px; right:22px; bottom:20px; color:white; font-size:9px; line-height:1.35; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }

.participant-media { position:relative; overflow:hidden; }
.participant-photo { width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1); }
.participant-card:hover .participant-photo { transform:scale(1.045); }
.participant-photo-tag { position:absolute; left:16px; bottom:15px; z-index:2; padding:7px 9px; border-radius:999px; background:rgba(255,253,249,.82); color:var(--ink); border:1px solid rgba(255,255,255,.68); backdrop-filter:blur(10px); font-size:7px; font-weight:800; text-transform:uppercase; letter-spacing:.10em; }

.profile-photo-card { position:relative; margin:0; width:min(86%,430px); aspect-ratio:.77; overflow:hidden; border-radius:42% 42% 28px 28px / 28% 28% 28px 28px; border:1px solid rgba(255,255,255,.68); box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 22px 42px rgba(49,38,31,.12), 0 58px 100px rgba(49,38,31,.15); }
.profile-photo-card img { width:100%; height:100%; object-fit:cover; }
.profile-photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 57%, rgba(27,29,24,.66)); }
.profile-photo-card figcaption { position:absolute; z-index:2; left:22px; right:22px; bottom:20px; color:white; display:grid; gap:3px; }
.profile-photo-card figcaption span { font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; opacity:.72; }
.profile-photo-card figcaption strong { font-size:11px; }
.gallery-photo { position:relative; overflow:hidden; min-height:0; height:100%; border-radius:28px; background:#30312c; border:1px solid rgba(255,255,255,.09); box-shadow:var(--shadow-dark); }
.gallery-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-card:hover .gallery-photo img { transform:scale(1.035); }
.gallery-photo span { position:absolute; left:18px; top:18px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgba(25,27,22,.58); color:white; border:1px solid rgba(255,255,255,.26); backdrop-filter:blur(8px); font-size:8px; font-weight:800; }

@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-media { min-height: 460px; transform: none; }
  .hero-media img { min-height: 460px; }
  .path-grid, .news-grid { display: grid; grid-template-columns: 1fr 1fr; }
  .path-grid:hover .path-card:not(:hover), .path-grid .path-card:hover,
  .news-grid:hover .news-card:not(:hover), .news-grid .news-card:hover { flex-grow: 1; filter: none; opacity: 1; }
  .path-card:first-child, .news-card:first-child { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .notice-ticker-group { height: 32px; gap: 22px; padding-inline: 18px; font-size: 9px; }
  .hero h1 { font-size: clamp(54px, 16vw, 78px); }
  .hero-lead { font-size: 18px; }
  .hero-media, .hero-media img { min-height: 360px; }
  .hero-media { border-radius: 28px 28px 70px 28px; }
  .hero-meta strong { font-size: 23px; }
  .path-grid, .news-grid { grid-template-columns: 1fr; }
  .path-card:first-child, .news-card:first-child { grid-column: auto; }
  .path-card { min-height: 520px; }
  .path-visual, .path-visual img { height: 210px; min-height: 210px; }
  .makers-bridge { margin-top: -20px; }
  .city-visual, .city-visual img { min-height: 360px; height: 360px; }
  .news-media, .featured-news .news-media { height: 220px; }
}

@media (prefers-reduced-motion: reduce) {
  .notice-ticker-track { animation: none; transform: none; }
  .notice-ticker-group[aria-hidden="true"] { display: none; }
}

/* ==========================================================================\n   V5 — AJUSTES FINAIS DE CONTINUIDADE VISUAL\n   Ticker mais coeso, hero full-bleed com fade lateral e cards de catálogo\n   com fotografia que desaparece verticalmente sobre a cor original.\n   ========================================================================== */

/* 1) Linha de aviso: removemos a distribuição artificial que espalhava as
   frases pela tela. Cada item agora fica próximo do separador e do próximo. */
.notice-ticker-track {
  width: max-content;
  min-width: 0;
  display: flex;
  will-change: transform;
  animation: noticeTicker 25s linear infinite;
}
.notice-ticker-group {
  flex: 0 0 auto;
  min-width: 0;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 0 16px 0 0;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
  word-spacing: 0;
  white-space: nowrap;
}
.notice-ticker-group span { margin: 0; }
.notice-ticker-group i {
  margin-inline: 1px;
  font-size: 7px;
  opacity: .72;
}
@keyframes noticeTicker {
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(-50%,0,0); }
}

/* 2) Hero: o grid deixa de ficar preso ao container no lado direito. O texto
   continua alinhado à malha do site, enquanto a fotografia encosta na borda
   da viewport e ocupa toda a altura útil da composição. */
.hero::after { display: none; }
.hero-grid.container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  padding-left: max(22px, calc((100vw - var(--container)) / 2));
  grid-template-columns: 52% 48%;
  gap: 0;
  align-items: stretch;
  min-height: 720px;
}
.hero-copy {
  position: relative;
  z-index: 4;
  align-self: center;
  padding: clamp(72px, 8vw, 116px) clamp(42px, 5vw, 82px) clamp(88px, 9vw, 132px) 0;
}
.hero-media {
  position: relative;
  z-index: 1;
  align-self: stretch;

  /* A mídia avança para a esquerda sem alterar a largura do grid.
     128% - 28% = 100%, então o lado direito continua exatamente na borda
     da viewport, enquanto a área extra entra por trás do bloco de texto. */
  width: 128%;
  height: auto;
  min-height: 720px;
  margin: 0 0 0 -28%;

  border: 0;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  transform: none;
  isolation: isolate;
}
.hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;

  /* Um leve deslocamento do enquadramento mantém o assunto principal mais
     para a direita, enquanto a própria caixa da imagem invade mais o lado
     esquerdo. Isso evita que elementos importantes fiquem atrás do texto. */
  object-position: 58% center;
  transform: scale(1.025);

  /* Fade horizontal ultra suave.
     A transição ocupa aproximadamente 2/3 da largura da imagem e usa vários
     stops intermediários para eliminar qualquer linha perceptível entre o
     vermelho do hero e a fotografia. */
  -webkit-mask-image: linear-gradient(
    to right,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,.015) 7%,
    rgba(0,0,0,.045) 13%,
    rgba(0,0,0,.10) 19%,
    rgba(0,0,0,.18) 25%,
    rgba(0,0,0,.29) 31%,
    rgba(0,0,0,.42) 37%,
    rgba(0,0,0,.56) 43%,
    rgba(0,0,0,.69) 49%,
    rgba(0,0,0,.80) 55%,
    rgba(0,0,0,.89) 60%,
    rgba(0,0,0,.95) 64%,
    rgba(0,0,0,.985) 68%,
    #000 72%,
    #000 100%
  );
  mask-image: linear-gradient(
    to right,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,.015) 7%,
    rgba(0,0,0,.045) 13%,
    rgba(0,0,0,.10) 19%,
    rgba(0,0,0,.18) 25%,
    rgba(0,0,0,.29) 31%,
    rgba(0,0,0,.42) 37%,
    rgba(0,0,0,.56) 43%,
    rgba(0,0,0,.69) 49%,
    rgba(0,0,0,.80) 55%,
    rgba(0,0,0,.89) 60%,
    rgba(0,0,0,.95) 64%,
    rgba(0,0,0,.985) 68%,
    #000 72%,
    #000 100%
  );
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
/* Mantém apenas um sombreado discreto na base para a legenda, sem criar
   uma borda ou película no encontro entre foto e texto. */
.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 62%, rgba(27,25,22,.54) 100%);
}
.hero-media figcaption { z-index: 3; }
.hero-photo-badge { z-index: 3; }

/* 3) "Explore antes de chegar": a fotografia ocupa a parte superior do card
   e some gradualmente até revelar 100% da cor original na metade inferior. */
.catalog-callout {
  min-height: 430px;
  grid-template-columns: auto 1fr auto;
  align-items: end;
  padding: 250px 28px 30px;
  isolation: isolate;
}
.catalog-callout::before { display: none; }
.callout-gastro { --catalog-bg: var(--coral); background: var(--catalog-bg); }
.callout-craft  { --catalog-bg: var(--olive); background: var(--catalog-bg); }
.catalog-callout-media {
  position: absolute;
  z-index: 0;
  inset: 0 0 auto 0;
  width: 100%;
  height: 68%;
  overflow: hidden;
  pointer-events: none;
}
.catalog-callout-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .35s ease;

  /* Máscara vertical: foto nítida no topo e totalmente transparente na base.
     A transparência revela o background coral/oliva do próprio card. */
  -webkit-mask-image: linear-gradient(
    to bottom,
    #000 0%,
    #000 38%,
    rgba(0,0,0,.92) 51%,
    rgba(0,0,0,.62) 66%,
    rgba(0,0,0,.20) 83%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    #000 0%,
    #000 38%,
    rgba(0,0,0,.92) 51%,
    rgba(0,0,0,.62) 66%,
    rgba(0,0,0,.20) 83%,
    transparent 100%
  );
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
.catalog-callout:hover .catalog-callout-media img {
  transform: scale(1.055);
  filter: saturate(1.03) contrast(1.02);
}
.catalog-callout > :not(.catalog-callout-media) {
  position: relative;
  z-index: 2;
}
.catalog-callout h3,
.catalog-callout p,
.catalog-callout small,
.catalog-index,
.catalog-callout > b {
  text-shadow: 0 2px 18px rgba(31,25,21,.10);
}

/* Fallback para navegadores muito antigos sem CSS mask. Em vez de remover
   opacidade da foto, um gradiente da própria cor do bloco produz o mesmo
   encontro visual. */
@supports not ((mask-image: linear-gradient(#000, transparent)) or (-webkit-mask-image: linear-gradient(#000, transparent))) {
  .hero-media img { -webkit-mask-image: none; mask-image: none; }
  .hero-media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(
      to right,
      var(--coral) 0%,
      rgba(201,95,77,.98) 12%,
      rgba(201,95,77,.90) 22%,
      rgba(201,95,77,.72) 34%,
      rgba(201,95,77,.50) 46%,
      rgba(201,95,77,.28) 57%,
      rgba(201,95,77,.10) 67%,
      transparent 76%
    );
  }
  .catalog-callout-media img { -webkit-mask-image: none; mask-image: none; }
  .catalog-callout-media::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to bottom, transparent 34%, var(--catalog-bg) 100%);
  }
}

/* Tablet: preserva o full-bleed, mas reduz a sobreposição lateral. */
@media (max-width: 980px) {
  .hero-grid.container {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-left: 0;
  }
  .hero-copy {
    padding: 64px 22px 44px;
  }
  .hero-media {
    width: 100%;
    height: 460px;
    min-height: 460px;
    margin: 0;
  }
  .hero-media img {
    position: absolute;
    min-height: 0;
    object-position: center center;
    transform: scale(1.015);
    -webkit-mask-image: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0,0,0,.05) 7%,
      rgba(0,0,0,.16) 14%,
      rgba(0,0,0,.34) 21%,
      rgba(0,0,0,.58) 29%,
      rgba(0,0,0,.78) 36%,
      rgba(0,0,0,.92) 43%,
      #000 50%,
      #000 100%
    );
    mask-image: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0,0,0,.05) 7%,
      rgba(0,0,0,.16) 14%,
      rgba(0,0,0,.34) 21%,
      rgba(0,0,0,.58) 29%,
      rgba(0,0,0,.78) 36%,
      rgba(0,0,0,.92) 43%,
      #000 50%,
      #000 100%
    );
  }
}

@media (max-width: 680px) {
  .notice-ticker-group {
    height: 32px;
    gap: 11px;
    padding-right: 12px;
    font-size: 9px;
    letter-spacing: .03em;
  }
  .hero-copy { padding: 54px 22px 34px; }
  .hero-media,
  .hero-media img {
    height: 370px;
    min-height: 370px;
  }
  .hero-media { border-radius: 0; }
  .catalog-callout {
    min-height: 410px;
    padding: 230px 24px 26px;
  }
  .catalog-callout-media { height: 66%; }
}

/* ======================================================================
   V7 — HERO FUSION / ELIMINAÇÃO TOTAL DA LINHA DIVISÓRIA
   ----------------------------------------------------------------------
   Estratégia em duas camadas:
   1) a fotografia nasce em 0% de opacidade e aparece de forma muito lenta;
   2) uma névoa com a mesma família de vermelho do Hero avança sobre a foto
      e também desaparece gradualmente.

   Assim, a transição não coincide visualmente com a divisão do grid.
   ====================================================================== */

@media (min-width: 981px) {
  .hero {
    /* Cor-base usada pela névoa. */
    --hero-fusion-red: 201, 95, 77;
  }

  .hero-copy {
    position: relative;
    z-index: 6;
  }

  .hero-media {
    position: relative;
    z-index: 1;
    align-self: stretch;

    /* A caixa da imagem entra muito mais no bloco de texto. A soma
       142% - 42% preserva o encontro com a borda direita da viewport. */
    width: 142%;
    min-height: 720px;
    margin: 0 0 0 -42%;

    border: 0;
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
    transform: none;
    isolation: isolate;
  }

  .hero-media img {
    position: absolute;
    inset: 0;
    z-index: 1;

    width: 100%;
    height: 100%;
    min-height: 0;

    object-fit: cover;
    object-position: 62% center;

    /* Zoom mínimo para evitar qualquer artefato de subpixel nas bordas. */
    transform: scale(1.035);
    transform-origin: center;
    backface-visibility: hidden;
    will-change: transform;

    /*
      MÁSCARA MULTIPONTOS
      0–10%   : foto completamente invisível;
      10–35%  : a imagem nasce quase imperceptivelmente;
      35–66%  : faixa longa de fusão;
      66–86%  : a foto assume presença total;
      86–100% : imagem integral.

      A grande quantidade de stops evita o salto perceptivo de
      transparent -> black e produz uma curva visual de "névoa".
    */
    -webkit-mask-image: linear-gradient(
      to right,
      rgba(0, 0, 0, 0)      0%,
      rgba(0, 0, 0, 0)     10%,
      rgba(0, 0, 0, .008)  14%,
      rgba(0, 0, 0, .018)  18%,
      rgba(0, 0, 0, .035)  22%,
      rgba(0, 0, 0, .065)  26%,
      rgba(0, 0, 0, .11)   30%,
      rgba(0, 0, 0, .17)   34%,
      rgba(0, 0, 0, .24)   38%,
      rgba(0, 0, 0, .32)   42%,
      rgba(0, 0, 0, .41)   46%,
      rgba(0, 0, 0, .51)   50%,
      rgba(0, 0, 0, .61)   54%,
      rgba(0, 0, 0, .70)   58%,
      rgba(0, 0, 0, .78)   62%,
      rgba(0, 0, 0, .85)   66%,
      rgba(0, 0, 0, .90)   70%,
      rgba(0, 0, 0, .94)   74%,
      rgba(0, 0, 0, .97)   78%,
      rgba(0, 0, 0, .99)   82%,
      #000                  86%,
      #000                 100%
    );
    mask-image: linear-gradient(
      to right,
      rgba(0, 0, 0, 0)      0%,
      rgba(0, 0, 0, 0)     10%,
      rgba(0, 0, 0, .008)  14%,
      rgba(0, 0, 0, .018)  18%,
      rgba(0, 0, 0, .035)  22%,
      rgba(0, 0, 0, .065)  26%,
      rgba(0, 0, 0, .11)   30%,
      rgba(0, 0, 0, .17)   34%,
      rgba(0, 0, 0, .24)   38%,
      rgba(0, 0, 0, .32)   42%,
      rgba(0, 0, 0, .41)   46%,
      rgba(0, 0, 0, .51)   50%,
      rgba(0, 0, 0, .61)   54%,
      rgba(0, 0, 0, .70)   58%,
      rgba(0, 0, 0, .78)   62%,
      rgba(0, 0, 0, .85)   66%,
      rgba(0, 0, 0, .90)   70%,
      rgba(0, 0, 0, .94)   74%,
      rgba(0, 0, 0, .97)   78%,
      rgba(0, 0, 0, .99)   82%,
      #000                  86%,
      #000                 100%
    );
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
  }

  /* Segunda camada de fusão. Ela cobre a área em que a fotografia começa
     a surgir e some muito lentamente. Isso neutraliza contrastes fortes
     de céu, água ou areia que poderiam denunciar a borda do grid. */
  .hero-media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;

    background: linear-gradient(
      to right,
      rgba(var(--hero-fusion-red), 0)      0%,
      rgba(var(--hero-fusion-red), .25)    5%,
      rgba(var(--hero-fusion-red), .60)   10%,
      rgba(var(--hero-fusion-red), .88)   16%,
      rgba(var(--hero-fusion-red), .96)   23%,
      rgba(var(--hero-fusion-red), .93)   30%,
      rgba(var(--hero-fusion-red), .84)   37%,
      rgba(var(--hero-fusion-red), .70)   44%,
      rgba(var(--hero-fusion-red), .53)   51%,
      rgba(var(--hero-fusion-red), .36)   58%,
      rgba(var(--hero-fusion-red), .21)   64%,
      rgba(var(--hero-fusion-red), .10)   70%,
      rgba(var(--hero-fusion-red), .035)  76%,
      rgba(var(--hero-fusion-red), 0)     82%
    );
  }

  /* ::after fica exclusivamente responsável pela leitura da legenda. */
  .hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background: linear-gradient(
      to bottom,
      transparent 62%,
      rgba(24, 22, 19, .08) 72%,
      rgba(24, 22, 19, .26) 86%,
      rgba(24, 22, 19, .52) 100%
    );
  }

  .hero-media figcaption,
  .hero-photo-badge {
    z-index: 4;
  }
}

/* Mobile/tablet: mantém a fusão vertical já existente e suaviza ainda mais
   o começo para não criar uma faixa horizontal entre texto e fotografia. */
@media (max-width: 980px) {
  .hero-media::before { content: none; }

  .hero-media img {
    -webkit-mask-image: linear-gradient(
      to bottom,
      rgba(0,0,0,0)      0%,
      rgba(0,0,0,.01)    6%,
      rgba(0,0,0,.035)  11%,
      rgba(0,0,0,.08)   16%,
      rgba(0,0,0,.15)   21%,
      rgba(0,0,0,.25)   26%,
      rgba(0,0,0,.38)   31%,
      rgba(0,0,0,.52)   36%,
      rgba(0,0,0,.66)   41%,
      rgba(0,0,0,.78)   46%,
      rgba(0,0,0,.88)   51%,
      rgba(0,0,0,.95)   56%,
      rgba(0,0,0,.985)  61%,
      #000               66%,
      #000              100%
    );
    mask-image: linear-gradient(
      to bottom,
      rgba(0,0,0,0)      0%,
      rgba(0,0,0,.01)    6%,
      rgba(0,0,0,.035)  11%,
      rgba(0,0,0,.08)   16%,
      rgba(0,0,0,.15)   21%,
      rgba(0,0,0,.25)   26%,
      rgba(0,0,0,.38)   31%,
      rgba(0,0,0,.52)   36%,
      rgba(0,0,0,.66)   41%,
      rgba(0,0,0,.78)   46%,
      rgba(0,0,0,.88)   51%,
      rgba(0,0,0,.95)   56%,
      rgba(0,0,0,.985)  61%,
      #000               66%,
      #000              100%
    );
  }
}

/* ======================================================================
   V8 — HERO FULL BACKGROUND / FUSÃO SEM DIVISÃO FÍSICA
   ----------------------------------------------------------------------
   A fotografia agora ocupa 100% da seção. O vermelho não é mais uma coluna:
   é uma camada sobre a própria foto, sólida na esquerda e progressivamente
   transparente até a direita. Como não há encontro entre duas caixas, não há
   linha vertical para o navegador renderizar.
   ====================================================================== */

.hero {
  --hero-red-rgb: 201, 95, 77;
  position: relative;
  display: block;
  min-height: clamp(720px, calc(100vh - 72px), 900px);
  overflow: hidden;
  color: #fff;
  background: rgb(var(--hero-red-rgb));
  isolation: isolate;
}

/* Remove ornamentos antigos que pertenciam ao layout em duas colunas. */
.hero::before,
.hero::after {
  content: none !important;
  display: none !important;
}

/* A fotografia existe atrás de TODO o Hero desde o primeiro pixel. */
.hero-background {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.hero-background img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  min-height: 0;
  display: block;
  object-fit: cover;
  object-position: 62% center;
  transform: scale(1.012);
  transform-origin: center;
}

/*
   Fusão principal. A camada vermelha continua 100% sólida onde o texto vive
   e começa a perder opacidade muito antes do centro visual. Os vários stops
   evitam qualquer mudança brusca e deixam a foto aparecer como uma névoa.
*/
.hero-fusion {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to right,
    rgba(var(--hero-red-rgb), 1)     0%,
    rgba(var(--hero-red-rgb), 1)    24%,
    rgba(var(--hero-red-rgb), .998) 28%,
    rgba(var(--hero-red-rgb), .992) 32%,
    rgba(var(--hero-red-rgb), .975) 36%,
    rgba(var(--hero-red-rgb), .94)  40%,
    rgba(var(--hero-red-rgb), .89)  44%,
    rgba(var(--hero-red-rgb), .82)  48%,
    rgba(var(--hero-red-rgb), .73)  52%,
    rgba(var(--hero-red-rgb), .63)  56%,
    rgba(var(--hero-red-rgb), .52)  60%,
    rgba(var(--hero-red-rgb), .41)  64%,
    rgba(var(--hero-red-rgb), .31)  68%,
    rgba(var(--hero-red-rgb), .22)  72%,
    rgba(var(--hero-red-rgb), .145) 76%,
    rgba(var(--hero-red-rgb), .085) 80%,
    rgba(var(--hero-red-rgb), .04)  84%,
    rgba(var(--hero-red-rgb), .012) 88%,
    rgba(var(--hero-red-rgb), 0)    92%,
    rgba(var(--hero-red-rgb), 0)   100%
  );
}

/* Textura fica acima da fusão, mas muito discreta. */
.hero .hero-grain {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: .10;
  pointer-events: none;
  mix-blend-mode: soft-light;
}

/* Novo container do conteúdo; não há mais grid 50/50. */
.hero-stage {
  position: relative;
  z-index: 3;
  min-height: inherit;
  display: flex;
  align-items: center;
  padding-top: clamp(72px, 8vw, 118px);
  padding-bottom: clamp(128px, 12vw, 160px); /* reserva o ticker */
}

.hero-stage .hero-copy {
  position: relative;
  z-index: 4;
  width: min(690px, 55vw);
  align-self: auto;
  padding: 0;
}

/* Mantém a hierarquia forte do texto da versão anterior. */
.hero-stage .hero-lead {
  max-width: 620px;
}

/* O ticker segue sobre o rodapé do Hero. */
.hero > .ticker {
  z-index: 8;
}

/* Tablet: a imagem continua full background; apenas damos mais proteção ao texto. */
@media (max-width: 1050px) {
  .hero {
    min-height: 760px;
  }

  .hero-background img {
    object-position: 66% center;
  }

  .hero-fusion {
    background: linear-gradient(
      to right,
      rgba(var(--hero-red-rgb), 1)     0%,
      rgba(var(--hero-red-rgb), 1)    34%,
      rgba(var(--hero-red-rgb), .99)  40%,
      rgba(var(--hero-red-rgb), .95)  46%,
      rgba(var(--hero-red-rgb), .86)  52%,
      rgba(var(--hero-red-rgb), .72)  58%,
      rgba(var(--hero-red-rgb), .55)  64%,
      rgba(var(--hero-red-rgb), .38)  70%,
      rgba(var(--hero-red-rgb), .23)  76%,
      rgba(var(--hero-red-rgb), .11)  82%,
      rgba(var(--hero-red-rgb), .035) 88%,
      rgba(var(--hero-red-rgb), 0)    94%,
      rgba(var(--hero-red-rgb), 0)   100%
    );
  }

  .hero-stage .hero-copy {
    width: min(650px, 66vw);
  }
}

/*
   Celular: a mesma arquitetura continua valendo, mas a fusão muda de eixo.
   A foto fica perceptível no topo e o vermelho se torna sólido na zona do
   texto. Não há troca de DOM nem retorno ao antigo layout de duas colunas.
*/
@media (max-width: 720px) {
  .hero {
    min-height: 800px;
  }

  .hero-background img {
    object-position: 68% center;
    transform: scale(1.02);
  }

  .hero-fusion {
    background: linear-gradient(
      to bottom,
      rgba(var(--hero-red-rgb), .14)   0%,
      rgba(var(--hero-red-rgb), .19)  10%,
      rgba(var(--hero-red-rgb), .28)  20%,
      rgba(var(--hero-red-rgb), .41)  30%,
      rgba(var(--hero-red-rgb), .57)  40%,
      rgba(var(--hero-red-rgb), .72)  49%,
      rgba(var(--hero-red-rgb), .84)  57%,
      rgba(var(--hero-red-rgb), .92)  64%,
      rgba(var(--hero-red-rgb), .97)  70%,
      rgba(var(--hero-red-rgb), .995) 76%,
      rgba(var(--hero-red-rgb), 1)    82%,
      rgba(var(--hero-red-rgb), 1)   100%
    );
  }

  .hero-stage {
    align-items: flex-end;
    min-height: inherit;
    padding-top: 285px;
    padding-bottom: 112px;
  }

  .hero-stage .hero-copy {
    width: 100%;
    max-width: 620px;
  }

  .hero-stage .hero-meta {
    grid-template-columns: 1fr;
  }

  .hero-stage .hero-meta > div + div {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.18);
  }
}

@media (max-width: 460px) {
  .hero {
    min-height: 830px;
  }

  .hero-stage {
    padding-top: 255px;
    padding-bottom: 108px;
  }

  .hero-stage .hero-copy h1 {
    font-size: clamp(54px, 16vw, 72px);
  }

  .hero-stage .hero-lead {
    font-size: 17px;
  }
}


/* ======================================================================
   V8.1 — PADRONIZAÇÃO DE FADE + LEGIBILIDADE
   Base: V8 Full Background Hero.
   Objetivo desta revisão:
   - repetir nos cards de "Os Três Caminhos" e "Fique por Dentro" o mesmo
     fade vertical usado em "Explore antes de chegar";
   - ampliar títulos e textos de apoio sem alterar a estrutura do V8;
   - preservar o comportamento responsivo e as cores originais dos cards.
   ====================================================================== */

body.home-page {
  /* Uma única curva de máscara compartilhada pelas três seções.
     A imagem fica integral no topo e desaparece suavemente na base,
     revelando a cor original do card. */
  --card-media-fade: linear-gradient(
    to bottom,
    #000 0%,
    #000 38%,
    rgba(0,0,0,.92) 51%,
    rgba(0,0,0,.62) 66%,
    rgba(0,0,0,.20) 83%,
    transparent 100%
  );
}

/* ----------------------------------------------------------------------
   TIPOGRAFIA — escala maior e leitura confortável
   ---------------------------------------------------------------------- */
body.home-page .section h2 {
  font-size: clamp(2.65rem, 4.6vw, 3.5rem);
  line-height: 1.02;
  font-weight: 700;
  letter-spacing: -.045em;
}

body.home-page .section-heading > p,
body.home-page .section-copy > p,
body.home-page .makers-bridge p,
body.home-page .schedule-header > p,
body.home-page .catalog-intro > p,
body.home-page .memory-body > p,
body.home-page .city-copy > p,
body.home-page .news-content > p,
body.home-page .faq-grid > div:first-child > p,
body.home-page .faq-list details > p {
  font-size: clamp(1.08rem, 1.18vw, 1.2rem);
  line-height: 1.62;
}

body.home-page .section-heading > p,
body.home-page .schedule-header > p,
body.home-page .catalog-intro > p,
body.home-page .city-copy > p,
body.home-page .faq-grid > div:first-child > p {
  max-width: 48rem;
}

body.home-page .edition-note p:last-child {
  font-size: 1.05rem;
  line-height: 1.58;
}

body.home-page .schedule-item p {
  font-size: clamp(1.02rem, 1.05vw, 1.12rem);
  line-height: 1.58;
}

body.home-page .schedule-item h3 {
  font-size: clamp(1.55rem, 1.8vw, 1.85rem);
  line-height: 1.14;
}

body.home-page .catalog-callout h3 {
  font-size: clamp(2.2rem, 2.8vw, 2.8rem);
  line-height: 1.02;
}

body.home-page .catalog-callout p {
  font-size: clamp(1.05rem, 1.1vw, 1.15rem);
  line-height: 1.58;
}

body.home-page .memory-body h3 {
  font-size: clamp(2rem, 2.6vw, 2.65rem);
  line-height: 1.06;
}

body.home-page .footer-main > p {
  font-size: 1rem;
  line-height: 1.6;
}

/* ----------------------------------------------------------------------
   FADE COMPARTILHADO — "Explore antes de chegar"
   Mantemos a seção de referência apontando para a mesma variável de máscara,
   garantindo consistência visual real entre as três áreas.
   ---------------------------------------------------------------------- */
body.home-page .catalog-callout-media img {
  -webkit-mask-image: var(--card-media-fade);
  mask-image: var(--card-media-fade);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

/* ----------------------------------------------------------------------
   OS TRÊS CAMINHOS
   A foto passa a ocupar a parte superior do card como uma camada de mídia.
   Não cria uma caixa separada: ela se dissolve diretamente no background
   coral/oliva/açafrão que já existia no V8.
   ---------------------------------------------------------------------- */
body.home-page .path-card {
  min-height: 640px;
  padding: 30px;
  isolation: isolate;
}

body.home-page .path-gastro { --path-fade-bg: #c95f4d; }
body.home-page .path-music  { --path-fade-bg: #747a45; }
body.home-page .path-craft  { --path-fade-bg: #d0a14f; }

body.home-page .path-visual {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 0;
  width: 100%;
  height: 64%;
  min-height: 0;
  margin: 0;
  display: block;
  overflow: hidden;
  border-radius: inherit inherit 0 0;
  box-shadow: none;
  transform: none;
  pointer-events: none;
}

body.home-page .path-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  -webkit-mask-image: var(--card-media-fade);
  mask-image: var(--card-media-fade);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}

body.home-page .path-card:hover .path-visual {
  transform: none;
}

body.home-page .path-card:hover .path-visual img {
  transform: scale(1.055);
  filter: saturate(1.03) contrast(1.02);
}

body.home-page .path-topline,
body.home-page .path-content {
  position: relative;
  z-index: 3;
}

body.home-page .path-content {
  margin-top: auto;
  transform: none;
}

body.home-page .path-photo-label {
  top: 74px;
  bottom: auto;
  left: 30px;
}

body.home-page .path-card h3 {
  font-size: clamp(2.35rem, 3vw, 3rem);
  line-height: .98;
  font-weight: 700;
}

body.home-page .path-card p:not(.path-kicker) {
  margin-top: 16px;
  max-width: 31rem;
  font-size: clamp(1.08rem, 1.12vw, 1.18rem);
  line-height: 1.6;
  opacity: .92;
}

body.home-page .path-kicker {
  font-size: .75rem !important;
  line-height: 1.25;
}

body.home-page .path-link {
  margin-top: 24px;
  font-size: .95rem;
}

/* ----------------------------------------------------------------------
   FIQUE POR DENTRO / NOTÍCIAS
   A fotografia agora funciona como mídia de topo e some no próprio branco
   do card. O conteúdo fica na metade inferior sem uma linha de separação.
   ---------------------------------------------------------------------- */
body.home-page .news-card {
  position: relative;
  min-height: 540px;
  overflow: hidden;
  background: #fff;
  isolation: isolate;
}

body.home-page .news-media,
body.home-page .featured-news .news-media {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 0;
  width: 100%;
  height: 64%;
  object-fit: cover;
  object-position: center;
  -webkit-mask-image: var(--card-media-fade);
  mask-image: var(--card-media-fade);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}

body.home-page .news-card:hover .news-media {
  transform: scale(1.045);
  filter: saturate(1.025) contrast(1.015);
}

body.home-page .news-content {
  position: relative;
  z-index: 2;
  min-height: 540px;
  padding: 285px 30px 32px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

body.home-page .news-content time {
  font-size: .75rem;
  line-height: 1.25;
}

body.home-page .news-content h3 {
  margin: 10px 0 14px;
  font-size: clamp(2.15rem, 2.65vw, 2.6rem);
  line-height: 1.04;
  font-weight: 700;
}

body.home-page .news-content p {
  margin: 0;
  font-size: clamp(1.08rem, 1.12vw, 1.18rem);
  line-height: 1.62;
}

body.home-page .news-link {
  margin-top: 22px;
  font-size: .82rem;
}

/* ----------------------------------------------------------------------
   FALLBACK PARA NAVEGADORES SEM CSS MASK
   A própria cor do card sobe sobre a imagem. O resultado visual permanece
   próximo do fade principal sem depender de mask-image.
   ---------------------------------------------------------------------- */
@supports not ((mask-image: linear-gradient(#000, transparent)) or (-webkit-mask-image: linear-gradient(#000, transparent))) {
  body.home-page .path-visual img,
  body.home-page .news-media {
    -webkit-mask-image: none;
    mask-image: none;
  }

  body.home-page .path-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to bottom, transparent 36%, var(--path-fade-bg) 100%);
  }

  body.home-page .news-card::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0 0 auto 0;
    height: 64%;
    pointer-events: none;
    background: linear-gradient(to bottom, transparent 36%, #fff 100%);
  }
}

/* ----------------------------------------------------------------------
   RESPONSIVIDADE
   Em telas menores, preservamos exatamente o mesmo efeito de fade, apenas
   aumentamos a altura útil dos cards para acomodar texto maior com conforto.
   ---------------------------------------------------------------------- */
@media (max-width: 980px) {
  body.home-page .path-grid,
  body.home-page .news-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.home-page .path-grid:hover .path-card:not(:hover),
  body.home-page .path-grid .path-card:hover,
  body.home-page .news-grid:hover .news-card:not(:hover),
  body.home-page .news-grid .news-card:hover {
    flex-grow: 1;
    filter: none;
    opacity: 1;
  }

  body.home-page .path-card {
    min-height: 610px;
  }

  body.home-page .news-card,
  body.home-page .news-content {
    min-height: 500px;
  }

  body.home-page .news-content {
    padding-top: 260px;
  }
}

@media (max-width: 680px) {
  body.home-page .section h2 {
    font-size: clamp(2.35rem, 11vw, 3.05rem);
  }

  body.home-page .section-heading > p,
  body.home-page .section-copy > p,
  body.home-page .makers-bridge p,
  body.home-page .schedule-header > p,
  body.home-page .catalog-intro > p,
  body.home-page .memory-body > p,
  body.home-page .city-copy > p,
  body.home-page .news-content > p,
  body.home-page .faq-grid > div:first-child > p,
  body.home-page .faq-list details > p,
  body.home-page .path-card p:not(.path-kicker),
  body.home-page .catalog-callout p {
    font-size: 1.05rem;
    line-height: 1.62;
  }

  body.home-page .path-card {
    min-height: 590px;
    padding: 26px;
  }

  body.home-page .path-visual {
    height: 61%;
  }

  body.home-page .path-photo-label {
    top: 70px;
    left: 26px;
  }

  body.home-page .path-card h3 {
    font-size: clamp(2.2rem, 10vw, 2.7rem);
  }

  body.home-page .news-card,
  body.home-page .news-content {
    min-height: 490px;
  }

  body.home-page .news-media,
  body.home-page .featured-news .news-media {
    height: 62%;
  }

  body.home-page .news-content {
    padding: 245px 24px 26px;
  }

  body.home-page .news-content h3 {
    font-size: clamp(2rem, 9vw, 2.45rem);
  }
}
