/* ==========================================================================
   FilmaPorto Custom Styles
BEM
   ========================================================================== */

/* ==========================================================================
    1. IMPORTS & FONTS
    ========================================================================== */

/* Normalize.css - reset/normalize browser defaults */
@import url("https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css");

/* Import Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
/* IBM Plex Mono is self-hosted: the Google Fonts build is subset down to the
   default (dotted) zero and ships no alternates, so the plain zero the design
   asks for — `ss04`, glyph zero.alt02 — is only reachable from the complete
   font. See --font-ibm-mono-features below. */
@font-face {
    font-family: "IBM Plex Mono";
    src: url("../../fonts/IBMPlexMono-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("../../fonts/IBMPlexMono-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("../../fonts/IBMPlexMono-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* GT Flexa Extended Font */
@font-face {
    font-family: "GT Flexa Extended";
    src:
        url("../../fonts/GT-Flexa-Extended-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "GT Flexa Extended";
    src:
        url("../../fonts/GT-Flexa-Extended-Medium.woff2") format("woff2"),
        url("../../fonts/GT-Flexa-Extended-Medium.woff") format("woff"),
        url("../../fonts/GT-Flexa-Extended-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* ==========================================================================
   2. CSS CUSTOM PROPERTIES
   ========================================================================== */

:root {
    /* Colors */
    --color-primary: #1e1e1e;
    --color-white: #ffffff;
    --color-background: #c8c8c8;
    --color-gray-light: #c8c8c8;
    --color-gray-medium: #666666;

    /* Portal Colors */
    --portal-yellow: #ffa53e;
    --portal-pink: #f76782;
    --portal-orange: #ffa53e;
    --portal-purple: #af96e7;
    --portal-blue: #5d90e6;

    /* Typography */
    --font-family: "Inter", sans-serif;
    --font-extended: "GT Flexa Extended", sans-serif;
    --font-ibm-mono: "IBM Plex Mono", monospace;
    /* Plain zero, no interior dot (IBM Plex Mono stylistic set 4 → zero.alt02).
       Paired with every --font-ibm-mono declaration; it cannot go on a shared
       ancestor because GT Flexa defines its own ss04. */
    --font-ibm-features: "ss04" 1;

    /* Layout */
    --border-width: 2px;
}

/* ==========================================================================
   3. BASE STYLES
   ========================================================================== */

body {
    font-family: var(--font-family);
    line-height: 1.6;
    color: var(--color-primary);
    background-color: #c8c8c8;
    font-size: 1.125em;
    padding: 0 48px 0 48px;
}

/* Site wrapper ensures centered layout like static index.html */
.site {
    max-width: var(--site-max-width, 1440px);
    margin: 0 auto;
}

/* Base link styles */
a {
    /*  
    color: var(--portal-black);
    text-decoration: underline;
    position: relative;
    background: linear-gradient(currentColor 0 0) left 98% / var(--underline-width, 0%) 1px no-repeat;
    text-decoration-thickness: 1px;
    transition: text-decoration-thickness 0.2s ease; 
    */
    color: var(--portal-black);
    text-decoration: none;
    position: relative;
    background: linear-gradient(to right, rgba(30, 30, 30, 0.5)), linear-gradient(to right, rgba(30, 30, 30, 1));
    background-size:
        100% 1px,
        0 1px;
    background-position:
        100% 100%,
        0 100%;
    background-repeat: no-repeat;
    transition: background-size 400ms;
}

a:hover,
a:focus {
    color: var(--portal-black);
    /*     outline: none;
    text-decoration: none; */
    outline: none;
    text-decoration: none;
    background-size:
        0 1px,
        100% 1px;
}

/* a:hover {
    --underline-width: 100%;
    transition: background-size 0.5s;
} */

a.linkfont {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-extended);
    color: var(--color-primary);
    margin-top: 0;
    margin-bottom: 0.5rem;
    letter-spacing: -0.05em;
}

hr {
    opacity: 1 !important;
    height: 1px;
    color: rgba(30, 30, 30, 0.5);
}

.wp-block-separator {
    height: 0 !important;
    color: transparent !important;
    background-color: transparent !important;
    border-top: 1.4px solid #1e1e1e !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
}

.wp-block-list {
    font-size: 1.5rem;
}

p {
    font-size: 1.5rem;
    line-height: 2.531rem;
    color: #1e1e1e;
}

strong {
    font-weight: 500;
}

/* ==========================================================================
   4. NAVIGATION
   ========================================================================== */

.navbar {
    padding: 1rem 0;
}

.logo-image {
    width: 180px;
    height: auto;
}

a.navbar-brand {
    background-size:
        100% 0px,
        0 0px;
}
a:hover.navbar-brand {
    background-size:
        100% 0px,
        0 0px;
}


.nav-button {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-weight: 500;
    font-size: 1.125rem;
    color: var(--color-primary) !important;
    padding: 0.2rem 0.6rem !important;
    margin: 0 0.35rem;
    border: 1px solid var(--color-primary);
    text-decoration: none;
}

.nav-button:hover,
.nav-button:focus {
    background-color: var(--color-primary);
    color: var(--color-gray-medium) !important;
    text-decoration: none;
}

.current-menu-item > .nav-button {
    color: var(--color-background) !important;
    background-color: #1e1e1e;
}

/* Active menu item: make text match page background color */
.current-menu-item > a.nav-link,
.current-menu-item > a.nav-button,
.current-menu-item > a.nav-link.nav-button {
    color: var(--color-background) !important;
}
.current-menu-item > a.nav-button:hover,
.current-menu-item > a.nav-button:focus {
    color: var(--color-background) !important;
}

.lang-item {
    text-decoration: underline;
    border: none;
    background-size:
        100% 0px,
        0 0px;
}

.lang-item > .nav-button {
    border: none;
    background-size:
        100% 0px,
        0 0px;
}

.lang-item > a.nav-link:hover {
    text-decoration: underline;
    color: #1e1e1e !important;
    background-size:
        100% 0px,
        0 0px;
    border: none;
}

.navbar-toggler {
    padding: 0;
    color: #1e1e1e;
}

.navbar-toggler:focus {
    box-shadow: none;
}

.navbar-toggler-icon {
    width: 42px;
    height: 42px;
}

.navbar-toggler-icon {
    background-image: url("../images/hamburger-icon.svg");
    /* background-repeat: no-repeat;
background-position: center;
background-size: 1.25em 1.25em; */
}

/* ==========================================================================
   5. SECTIONS & LAYOUT
   ========================================================================== */

.page-title {
    font-family: var(--font-extended);
    font-size: 3.4rem;
    font-weight: 500;
    color: var(--color-primary);
    margin-bottom: 1rem;
    letter-spacing: -0.05rem;
}

.navigationSection {
    padding: 1rem 0 3rem 0;
}

.navigationGrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* Navigation Grid — frame/rect (from static/navigationgrid.html) */
.navigationGrid .frame {
    position: relative;
    width: 100%;
    aspect-ratio: 662 / 263;
    background: var(--portal, #cfe9ff);
    border: 1px solid #1e1e1e;
    overflow: hidden;
    user-select: none;
    outline: none;
    cursor: pointer;
}
.navigationGrid .rect {
    position: absolute;
    /* 377x167 over 662x293 ≈ 57% both */
    width: 57%;
    height: 57%;
    background: #c8c8c8;
    border: 1.5px solid #1e1e1e;
    display: grid;
    padding: 8px;
}
.navigationGrid .rect .content {
    align-self: end;
    justify-self: start;
    font-family: var(--font-extended);
    font-weight: 500;
    font-size: 2rem;
    line-height: 1.2em;
    color: var(--color-primary, #1e1e1e);
    letter-spacing: -0.05rem;
}

.navigationGrid .corner {
    position: absolute;
    width: 1px;
    height: 1px;
    transform: translate(-50%, -50%);
    background: transparent;
    pointer-events: none;
}

.navigationGrid .frame-corner.ta::after {
    content: "";
    position: absolute;
    width: 0%;
    height: 1px;
    display: block;
    background-color: black;
    transition: width 0.2s ease-in-out;
}

.navigationGrid .frame-corner.tl {
    top: -1px;
    left: -1px;
}

.navigationGrid .frame-corner.tr {
    top: -0.7px;
    right: -0.3px;
}

.navigationGrid .frame-corner.br {
    bottom: -1px;
    right: -1px;
}

.navigationGrid .frame-corner.bl {
    bottom: -0.9px;
    left: -1px;
}

.navigationGrid .rect-corner.tl {
    top: -0.9px;
    left: -0.5px;
}

.navigationGrid .rect-corner.tr {
    top: -1px;
    right: -1px;
}

.navigationGrid .rect-corner.br {
    bottom: -1px;
    right: -1px;
}

.navigationGrid .rect-corner.bl {
    bottom: -0.8px;
    left: -0.5px;
}

.navigationGrid svg.lines {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
.navigationGrid svg.lines line {
    stroke: #1e1e1e;
    stroke-width: 1.3px;
    vector-effect: non-scaling-stroke;
}

.directory-section {
    margin-top: 150px;
    padding-bottom: 40px;
}

.explore-section {
    margin-top: 160px;
}

.explore-section-header {
    margin-bottom: 3rem !important;
}

/* "Consulta o nosso diretório" sat 29px below "Inscreve-te no Diretório":
   the columns were bottom-aligned as boxes, so the two different bottom
   margins pushed the link off the heading's baseline. Aligning the last
   baselines keeps them level whether the heading takes one line or two. */
.directory-section .explore-section-header {
    align-items: last baseline !important;
}

.directory-section .explore-section-header .section-title {
    margin-bottom: 0;
}

.directory-section .explore-section-header .btn-gallery {
    margin-bottom: 0 !important;
}

.section-title {
    font-family: var(--font-extended);
    font-size: 3rem;
    font-weight: 500;
    color: var(--color-primary);
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}

.section-description {
    font-family: var(--font-family);
    font-size: 1.5rem;
    color: #1e1e1e;
    line-height: 1.42;
    font-weight: 400;
    line-height: 2.025rem;
}
.directory-section .section-title {
    margin-bottom: 40px !important;
}

.directory-section .section-description {
    margin-bottom: 50px !important;
    max-width: 70%;
}

/* =========================================================================
   5. PAGES & TEMPLATES
   ========================================================================== */

/* Privacy Policy page template */
body.page-template-page-privacy {
    background: #c8c8c8 !important;
}

.privacy-page {
    background: #c8c8c8;
}

.privacy-container {
    padding-top: 80px;
    padding-bottom: 100px;
}

.privacy-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 60px;
}

.privacy-title {
    font-family: var(--font-extended);
    font-size: 48px;
    letter-spacing: -0.96px;
    line-height: 1;
    font-weight: 500;
    color: #1e1e1e;
    margin: 0;
}

.privacy-back-link {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    letter-spacing: -0.44px;
    color: #1e1e1e;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-transform: uppercase;
    white-space: nowrap;
    background: none;
    transition: none;
}

.privacy-back-link:hover {
    color: #1e1e1e;
    background: none;
}

.privacy-content {
    max-width: 1003px;
}

/* Flatten Gutenberg columns inside privacy content — ignore the 90/10 editorial split */
.privacy-content .wp-block-columns {
    display: block !important;
}

.privacy-content .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
}

.privacy-content h2.wp-block-heading {
    font-family: var(--font-extended);
    font-size: 22px;
    letter-spacing: -0.44px;
    line-height: 1.45;
    font-weight: 500;
    margin-top: 3rem;
    margin-bottom: 0.625rem;
}

.privacy-content p,
.privacy-content .wp-block-column p {
    font-size: 20px !important;
    line-height: 1.45;
    margin-bottom: 0.625rem;
}

.privacy-content .wp-block-list,
.privacy-content ul,
.privacy-content ol,
.privacy-content li {
    font-size: 20px;
    line-height: 1.45;
}

.privacy-content p strong,
.privacy-content .wp-block-column p strong,
.privacy-content .wp-block-list strong {
    font-weight: 600;
}

.privacy-content a {
    color: #1e1e1e;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    background: none;
    transition: none;
}




/* ==========================================================================
   6. PORTAL CARDS
   ========================================================================== */

.card_yellow,
.card_pink,
.card_orange,
.card_purple,
.card_blue {
    display: block;
    cursor: pointer;
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
    text-decoration: none;
}

.card_yellow:hover,
.card_pink:hover,
.card_orange:hover,
.card_purple:hover,
.card_blue:hover {
    transform: translateY(-5px);
    text-decoration: none;
}

.portalSvg {
    width: 100%;
    height: auto;
    max-height: 288px;
}

.panel {
    background-color: var(--color-white);
}

.portalText {
    font-family: var(--font-extended);
    font-size: 26px;
    font-weight: 500;
    text-anchor: start;
    fill: var(--color-primary);
    letter-spacing: -0.05rem;
}

/* ==========================================================================
   7. DIRECTORY SECTION
   ========================================================================== */

.dir-cards-row {
    --bs-gutter-x: 20px;
    --bs-gutter-y: 20px;
    margin-top: 10px;
}

.directory-card {
    border: 1px solid #1e1e1e;
}

.directory-image {
    width: 100%;
    height: 280px;
    overflow: hidden;
    border-bottom: 1px solid #1e1e1e;
}

.directory-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.directory-card h5 {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-weight: 500;
    color: var(--color-primary);
    height: 70px;
    padding: 0 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    text-decoration: none;
    letter-spacing: 0;
    margin: 0;
}

a.directory-card {
    text-decoration: none !important;
    background-size:
        100% 0px,
        0 0px;
}

a.directory-card:hover {
    background-color: #1e1e1e;
    color: #c8c8c8 !important;
}

a.directory-card:hover h5 {
    color: #c8c8c8 !important;
}

/* ==========================================================================
   8. GALLERY & BUTTONS
   ========================================================================== */

h2.decors-title {
    padding: 0 !important;
    margin: 0 !important;
}

.btn-gallery {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.375rem;
    text-decoration-thickness: 1px;
    margin-bottom: 0.5rem !important;
    float: right;
}

.btn-gallery a {
    text-decoration: none;
}

.btn-gallery a:hover {
    text-decoration: none;
}

.btn-gallery span.arrow-icon {
    rotate: 45deg;
    display: inline-block;
    opacity: 0;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    vertical-align: baseline;
    font-weight: 400;
}

.btn-gallery span.arrow-icon-back {
    rotate: -45deg;
    display: inline-block;
    opacity: 0;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    vertical-align: baseline;
    font-weight: 400;
}

.btn-gallery:hover span.arrow-icon,
.btn-gallery span.arrow-icon:focus,
.btn-gallery:hover span.arrow-icon-back,
.btn-gallery span.arrow-icon-back:focus {
    opacity: 1;
}

.home-gallery-image {
    margin-top: -5rem;
}

/* .btn-gallery > span.link-icon {
visibility: hidden;
font-size:1.375em;
}

.btn-gallery:hover > span.link-icon {
visibility: visible;
font-size:1.375em;
}

 */

/* ==========================================================================
   9. PAGE PRIMITIVES (shared)
   ========================================================================== */

.page-intro-section {
    padding-top: calc(1.5rem + 1em);
    padding-bottom: calc(1.5rem + 1em);
}

/* Generic helpers to normalize sections */
.filmaporto-block-hero {
    width: 100%;
}

.filmaporto-block-hero picture {
    display: block;
    width: 100%;
}

.filmaporto-block-hero img {
    width: 100%;
    height: auto;
    display: block;
}

.filmaporto-block-title {
    font-family: var(--font-extended);
    font-size: 4rem;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 40px;
    color: #1e1e1e;
    letter-spacing: -1.28px;
}
h2.filmaporto-block-subtitle {
    font-family: var(--font-extended);
    font-size: 3rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.96px;
}

h3.filmaporto-block-subtitle {
    font-family: var(--font-extended);
    font-size: 1.75rem;
    font-weight: 500;
    letter-spacing: -0.05rem;
}

h2.filmaporto-block-subtitle-lines,
h3.filmaporto-block-subtitle-lines {
    border-bottom: 1px solid #1e1e1e;
    padding-bottom: 24px;
    padding-top: 24px;
    margin-bottom: 24px;
    letter-spacing: -0.96px;
}

h2.filmaporto-block-subtitle-lines {
    font-family: var(--font-extended);
    font-size: 3rem;
    font-weight: 500;
    letter-spacing: -0.96px;
}

.filmaporto-block-lead,
.filmaporto-block-lead p {
    line-height: 2.531rem;
    color: #1e1e1e;
    font-size: 1.875rem;
    font-weight: 400 !important;
    font-family: var(--font-family);
}

.filmaporto-block-lead {
    margin-bottom: 70px;
    width: 75%;
}

.filmaporto-block-body {
    line-height: 1.6;
    color: #1e1e1e;
}

.filmaporto-block-body-text {
    font-size: 1.5rem;
    line-height: 1.2em;
}

/* Title + Link right block */
.title-link-right-block {
    /*     border-top: 1px solid rgba(30, 30, 30, .5); */
    margin-bottom: 1.5rem;
}

a.title-link-right {
    color: #1e1e1e;
    font-weight: 400;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.375rem;
    letter-spacing: -0.44px;
    text-decoration: none;
}

.title-link-right:hover {
    color: #1e1e1e;
    text-decoration: none;
}

.btn-link-arrow-wrapper {
    font-size: 1.375rem;
}

.btn-link-arrow-wrapper span.arrow-icon {
    rotate: 45deg;
    display: inline-block;
    opacity: 0;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    vertical-align: baseline;
    font-weight: 400;
    margin-left: 0.35em;
}

.btn-link-arrow-wrapper span.arrow-icon-back {
    rotate: -45deg;
    display: inline-block;
    opacity: 0;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    vertical-align: baseline;
    font-weight: 400;
    margin-left: 0.35em;
}

.btn-link-arrow-wrapper:hover span.arrow-icon,
.btn-link-arrow-wrapper span.arrow-icon:focus,
.btn-link-arrow-wrapper:hover span.arrow-icon-back,
.btn-link-arrow-wrapper span.arrow-icon-back:focus {
    opacity: 1;
}

/* ==========================================================================
   10. DÉCORS PAGE (decors.html)
   ========================================================================== */

.decors-section {
    background: transparent;
    color: var(--color-primary, #1e1e1e);
    padding-top: 77px;
    padding-bottom: 80px;
}
.decors-section .container-fluid {
    padding: 0;
}
.decors-section .filmaporto-block-title {
    font-family: var(--font-extended);
    font-size: 64px;
    letter-spacing: -1.28px;
    line-height: 1;
    margin: 0;
}
/* Decors header with title and link */
.decors-header-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 50px;
    gap: 40px;
}

.decors-header-left {
    display: flex;
    align-items: baseline;
    gap: 16px;
    flex: 1;
}

.decors-header-left .filmaporto-block-title,
.decors-header-left .filmaporto-block-subtitle {
    margin: 0;
}

.decors-header-right {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: 16px;
}

.decors-cta {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    color: #1e1e1e;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    letter-spacing: -0.44px;
    text-transform: uppercase;
    white-space: nowrap;
    background: none;
    transition: none;
}
.decors-cta:hover {
    color: #1e1e1e;
    text-decoration: underline;
    background: none;
}

.decors-cta span.arrow-icon-back,
.decors-cta-mobile span.arrow-icon-back {
    rotate: -45deg;
    display: inline-block;
    opacity: 0;
    font-family: var(--font-ibm-mono, 'IBM Plex Mono', monospace);
    font-feature-settings: var(--font-ibm-features);
    vertical-align: baseline;
    font-weight: 400;
    transition: opacity 0.2s ease;
    margin-right: 0.35em;
}

.decors-cta:hover span.arrow-icon-back,
.decors-cta-mobile:hover span.arrow-icon-back {
    opacity: 1;
}

/* Mobile-only CTA link shown below header row */
.decors-cta-mobile {
    display: none;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 12px;
    letter-spacing: -0.24px;
    line-height: 1.2;
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-skip-ink: none;
    text-transform: uppercase;
    background: none;
    padding: 0;
}

/* Mobile filter toggle button - hidden on desktop */
.decors-filter-toggle {
    display: none;
    align-items: center;
    gap: 8px;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 0.755rem;
    background: transparent;
    color: #1e1e1e;
    border: 1px solid #1e1e1e;
    padding: 6px 12px;
    cursor: pointer;
    flex-shrink: 0;
    margin-left: auto;
}

.decors-filter-toggle:hover {
    background-color: #1e1e1e;
    color: #c8c8c8;
}

.decors-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    padding-top: 20px;
    margin: 0 0 50px 0;
}

/* Desktop filters - visible by default */
.decors-filters-desktop {
    display: flex;
}

.decors-chip {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-weight: 500;
    font-size: 18px;
    line-height: 1.35;
    background: transparent;
    color: #1e1e1e;
    border: 1.4px solid #1e1e1e;
    padding: 6.5px 13px;
    border-radius: 0;
}

.decors-chip:hover {
    background-color: #1e1e1e;
    color: #c8c8c8;
}
.decors-chip.active {
    background: #1e1e1e;
    color: #c8c8c8;
    border-color: #1e1e1e;
}

/* Mobile overlay - hidden by default */
.decors-filters-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #c8c8c8;
    z-index: 9999;
    overflow-y: auto;
}

.decors-filters-overlay.active {
    display: block;
}

.decors-filters-overlay-content {
    padding: 50px 24px 24px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.decors-filters-overlay-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}

.decors-filters-overlay-header h2 {
    font-family: var(--font-extended);
    font-size: 28px;
    letter-spacing: -0.56px;
    color: #1e1e1e;
    margin: 0;
}

.decors-filters-close {
    background: transparent;
    border: none;
    color: #1e1e1e;
    cursor: pointer;
    padding: 0;
    font-family: var(--font-extended);
    font-weight: 300;
    font-size: 40px;
    line-height: 1.3;
}

.decors-filters-mobile {
    flex-direction: column;
    gap: 10px;
    margin: 0;
    flex: 1;
    align-items: flex-start;
}

.decors-filters-mobile .decors-chip {
    display: inline-block;
    text-align: left;
    border: 1.2px solid #1e1e1e;
    padding: 6px 12px;
    margin-bottom: 0;
    font-size: 16px;
    width: auto;
}

.decors-filters-mobile .decors-chip:first-child.active {
    background: #1e1e1e;
    color: #c8c8c8;
}

.decors-filters-apply {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 18px;
    background: transparent;
    color: #1e1e1e;
    border: none;
    padding: 16px 0;
    text-align: left;
    cursor: pointer;
    margin-top: auto;
    text-decoration: underline;
    text-decoration-skip-ink: none;
}

.decors-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
    margin: 0;
}

figure.decors-card {
    margin: 0 !important;
}

.decors-card {
    position: relative;
    width: 441px;
    height: 300px;
    background: #1e1e1e;
    overflow: hidden;
    flex-shrink: 0;
}
.decors-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.decors-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(30, 30, 30, 0.7);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
}
.decors-card::before {
    content: attr(data-caption);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -45%);
    width: 300px;
    color: #d9d9d9;
    font-family: var(--font-extended);
    font-weight: 500;
    font-size: 18px;
    line-height: 1.2;
    text-align: center;
    opacity: 0;
    transition:
        opacity 0.3s ease,
        transform 0.3s ease;
    pointer-events: none;
    z-index: 2;
}
.decors-card:hover::after,
.decors-card:focus-within::after {
    opacity: 1;
}
.decors-card:hover::before,
.decors-card:focus-within::before {
    opacity: 1;
    transform: translate(-50%, -50%);
}

.decors-more {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 124px;
    text-align: center;
    margin: 0;
}

.decors-load-more {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    color: #1e1e1e;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    letter-spacing: -0.44px;
    text-transform: uppercase;
    background: none;
    transition: none;
}
.decors-load-more:hover {
    color: #1e1e1e;
    text-decoration: underline;
    background: none;
}

/* Lightbox */
.lightbox-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(30, 30, 30, 0.9);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1050;
}
.lightbox-backdrop.show {
    display: flex;
}
.lightbox-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: min(900px, 92vw);
}
.lightbox-image {
    max-width: min(900px, 92vw);
    max-height: min(595px, 80vh);
    width: 100%;
    object-fit: contain;
}
.lightbox-caption {
    color: #d9d9d9;
    text-align: center;
    font-family: var(--font-family);
    font-size: 18px;
    line-height: 1.25;
    padding-top: 20px;
    width: min(569px, 92vw);
}
.lightbox-prev,
.lightbox-next,
.lightbox-close {
    position: fixed;
    background-color: transparent;
    color: #d9d9d9;
    border: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 60px;
    line-height: 1.3;
    cursor: pointer;
    font-family: var(--font-extended);
    font-weight: 400;
    z-index: 1100;
    padding: 0;
}
.lightbox-prev {
    left: 32px;
    top: 50%;
    transform: translateY(-50%);
}
.lightbox-next {
    right: 32px;
    top: 50%;
    transform: translateY(-50%);
}
.lightbox-close {
    right: 21px;
    top: 46px;
    font-size: 50px;
}
.lb-open {
    overflow: hidden;
}

/* ==========================================================================
   11. VIDEO SECTION
   ========================================================================== */

.video-section {
    margin-top: 125px;
}

.video-container {
    overflow: hidden;
}

.home-video {
    width: 100%;
    height: auto; /* follow intrinsic/video or poster ratio */
    display: block;
}

.btn-play {
    width: 160px;
    height: 160px;
    background-color: rgba(30, 30, 30, 0) !important;
    border: none;
    border-radius: 0;
    color: rgba(255, 255, 255, 1) !important;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg>');
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center;
}

.btn-play:hover {
    transform: translate(-50%, -50%) scale(1.1);
}

/* ==========================================================================
   12. FOOTER
   ========================================================================== */

.footer {
    border-top: 1px solid  rgba(30, 30, 30, 0.5);
    margin-top: 160px;
    padding-top: 60px !important;
    margin-bottom: 30px;
}

.footer-title {
    font-family: var(--font-extended);
    font-weight: 500;
    font-size: 1.375rem;
    color: var(--color-primary);
    margin-bottom: 1.5rem;
    letter-spacing: -0.05rem;
}

.footer-links {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.125rem;
    color: var(--color-primary);
    font-weight: 400;
    margin: 0 0 1.5rem 0;
}

.footer-links a {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.125rem;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 400;
    background-size:
        100% 0px,
        0 1px;
}

.footer-links a:hover {
    color: var(--color-primary);
    background-size:
        0 1px,
        100% 1px;
}

.footer-about-link {
    color: #1e1e1e;
    text-decoration: none;
    background-size:
        100% 0px,
        0 1px;
}

.footer-about-link::after {
    content: "↓";
    display: inline-block;
    margin-left: 0.35em;
    transform: rotate(-135deg);
    font-size: 1em;
    font-family:var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
}

.footer-about-link:hover {
    text-decoration: none;
}

.footer-email,
.footer-links a[href^="mailto:"] {
    text-decoration: underline !important;
}

.footer-address p {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.125rem;
    color: var(--color-primary);
    line-height: 1.744rem;
    letter-spacing: -0.025rem;
    margin: 0;
}

.footer-logos-row {
    align-items: end;
    margin-top: 50px;
}

.porto-logos {
    display: flex;
    align-items: end;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.porto-logo {
    height: 39px;
    width: auto;
}

.partner-text {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1rem;
    color: var(--color-primary);
    margin-bottom: 1rem;
}

.partner-logos {
    display: flex;
    align-items: center;
}

.partner-logo {
    height: 38px;
    width: auto;
    opacity: 1;
}

.partner-logos a {
    background-size:
        100% 0px,
        0 0px;
}

.porto-logo-link a {
    display: inline-block;
    height: 53px;
    background-size:
        100% 0px,
        0 0px !important;
    padding-top:8px;
}

.porto-logo-link a:hover {
    text-decoration: none;
    background-size:
        100% 0px,
        0 0px;
}

a.eufcnlink {
    margin-top: 15px;
    background-size:
        100% 0px,
        0 0px;
}

a.eufcnlink:hover,
a.afcilink:hover {
    text-decoration: none;
    background-size:
        100% 0px,
        0 0px;
}

a.afcilink img {
    margin-right: 1.5rem;
}

/* ==========================================================================
   13. ANIMATIONS & LOADING STATES
   ========================================================================== */

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in-up {
    animation: fadeInUp 0.6s ease forwards;
}

@keyframes spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

.loading {
    opacity: 0.6;
    pointer-events: none;
}

.loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    border: 2px solid var(--color-primary);
    border-top: 2px solid transparent;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: spin 1s linear infinite;
}

/* ==========================================================================
   14. FILMAR NO PORTO
   ========================================================================== */

.filmar-page {
    background: #ffa53e;
}

/* Hero Collage (3-photo overlapping collage — mobile Filmar no Porto) */
.filmar-hero-collage {
    display: flex;
    gap: 10px;
    overflow: hidden;
}

.filmar-hero-collage img {
    flex: 1;
    height: 200px;
    object-fit: cover;
    display: block;
}

/* filmar-title normalized via .filmaporto-block-title*/
.filmar-lead {
    color: #1e1e1e;
    max-width: 1003px;
    width: 100%;
}

/* Two-column headings */
.filmar-subtitle {
    font-family: var(--font-extended);
    font-size: 3rem;
    letter-spacing: -0.06rem;
}
.section-text-right-block {
    padding: 80px 0 20px 0;
}

/* Block: Section Text Right subtitle */
.filmar-guides-section,
.filmar-licenses-section,
.section-text-right-block {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}

.section-text-right-block h2.filmaporto-block-subtitle,
.filmar-map-section h2.filmaporto-block-subtitle {
    letter-spacing: -0.06rem;
}

.section-text-right-block .filmaporto-block-body-text,
.section-text-right-block .filmaporto-block-body-text p {
    font-size: 24px;
    line-height: 135%;
    padding-right: 5px;
}

.filmar-links {
    list-style: none;
    padding-left: 0;
}

.filmar-links li {
    margin: 6px 0;
}

.filmar-links a {
    color: #1e1e1e;
    text-decoration: underline;
}

/* Arrow list with ↓ bullets */

ul.arrow-list {
    margin-top: 1.3em;
}

.arrow-list li {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    list-style-type: none;
}

.arrow-list li::before {
    content: "↓ ";
    display: inline;
    color: #1e1e1e;
    padding-top: 3px;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1em;
    font-weight: 300;
}

.arrow-list li span {
    display:inline-flex;
    width:85%;
}

.arrow-list li span a{
    text-decoration: underline;
   text-decoration-thickness: 1px !important;
    text-underline-offset: 5px;
    background-size: 100% 0, 0 0px;
        text-decoration-color:rgba(30, 30, 30, 0.5);
}


.arrow-list li span a:hover{
    text-decoration-thickness: 1px !important;
    text-underline-offset: 5px;
    background-size: 100% 0, 0 0px;
            text-decoration-color:rgba(30, 30, 30, 1);

}


/* WP block separators conflict with block-level border-top — suppress globally */
.filmaporto-block-body hr.wp-block-separator {
    display: none !important;
}

/* Accordion */
.filmar-accordion,
.section-text-right-accordion {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
    margin: 0;
}

/* First accordion block: extra gap after the Film Permits header (80px total = 20px pb + 60px mt) */
.first-child-item {
    margin-top: 60px;
}

.filmar-acc-item + .filmar-acc-item,
.section-text-right-acc-item + .section-text-right-acc-item {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}

/* 3-column permit row: title | content | toggle */
.filmar-permit-row {
    display: flex;
    align-items: flex-start;
    padding: 20px 0;
}

.filmar-acc-item.open .filmar-permit-row,
.section-text-right-acc-item.open .filmar-permit-row {
    padding-bottom: 80px;
}

/* Title column: ~51% (686 / 1344px) */
.filmar-acc-header,
.section-text-right-acc-header {
    flex: 0 0 51%;
    width: 51%;
    background: transparent;
    border: 0;
    text-align: left;
    padding: 0;
    font-family: var(--font-extended);
    font-size: 2rem;
    font-weight: 500;
    color: #1e1e1e;
    letter-spacing: -0.64px;
    line-height: 1.35;
    cursor: pointer;
}

.filmar-acc-header span.accitemtitle,
.section-text-right-acc-header span.accitemtitle {
    display: block;
    color: #1e1e1e;
}

/* Content column: ~41% (554 / 1344px), beside title when open */
.filmar-acc-panel,
.section-text-right-acc-panel {
    flex: 0 0 41%;
    width: 41%;
    display: none;
    color: #1e1e1e;
    padding-top: 20px;
}

.section-text-right-acc-panel p {
    font-size: 22px;
    line-height: 1.35;
    letter-spacing: -0.22px;
    margin-bottom: 0;
}

.filmar-acc-item.open .filmar-acc-panel,
.section-text-right-acc-item.open .section-text-right-acc-panel {
    display: block;
}

/* Download link inside panel */
.filmar-permit-download {
    font-family: var(--font-ibm-mono) !important;
    font-feature-settings: var(--font-ibm-features) !important;
    font-size: 20px !important;
    letter-spacing: -0.02rem !important;
    margin-top: 1em !important;
}

.filmar-permit-download a {
    text-decoration: underline;
    color: #1e1e1e;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(30, 30, 30, 0.5);
}

.filmar-permit-download a:hover {
    text-decoration-color: #1e1e1e;
}

/* Toggle column: fills remaining space */
.filmar-permit-toggle {
    flex: 1;
    text-align: right;
    font-family: var(--font-extended);
    font-size: 2rem;
    line-height: 1.35;
    color: #1e1e1e;
    cursor: pointer;
}

/* Map */
.filmar-map-section {
    margin: 0 !important;
    padding-top: 80px !important;
    padding-bottom: 20px !important;
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}

.filmar-map-section p {
    font-size: 1.5rem;
    line-height: 135%;
}

.filmar-map-block {
    margin-bottom: 3rem !important;
}

.filmar-map {
    position: relative;
    height: 520px;
    background: #c8c8c8;
    border: 1px solid #1e1e1e;
    margin-top: 1rem;
}

.leaflet-map {
    position: absolute;
    inset: 0;
}

/* ==========================================================================
   15. BOLSAS PAGE
   ========================================================================== */

.bolsas-page {
    background: #f76782;
}

/* Regulamento / Aviso de abertura sections (class: bolsas-items) */
/* base .section-text-right-block gives 80px top + border-top; override bottom to 80px */
.bolsas-items {
    padding-bottom: 80px;
}

/* Title: Figma leading-[1.35] at 48px = ~65px effective height */
.bolsas-items h2.filmaporto-block-subtitle {
    line-height: 1.35;
}

/* Download link column: center vertically in 65px to match Figma Details h-[65px] justify-center */
.bolsas-items .filmaporto-block-body-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 65px;
    padding-top:18px;
}


/* Download link: remove arrow-list default margin-top */
.bolsas-items ul.arrow-list {
    margin-top: 0 !important;
}

.bolsas-items .arrow-list li {
    font-size: 24px;
}

/* Anos anteriores: years section — 80px top + border-top + 80px bottom before Support border */
.bolsas-years-section {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
    padding: 80px 0 80px 0;
}

/* "Anos anteriores" title: gap between title and first year row matches flex gap-80px */
.bolsas-years-title.filmaporto-block-subtitle {
    margin-bottom: 80px !important;
    padding: 0 !important;
    letter-spacing: -0.06rem;
}

/* Year row: flex, 2 columns */
.bolsas-year {
    display: flex;
    align-items: flex-start;
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}

/* Year label column: ~50.7% (682 / 1344px) */
.bolsas-year-label {
    flex: 0 0 50.7%;
    font-family: var(--font-extended);
    font-weight: 500;
    font-size: 32px;
    line-height: 2.5;
    letter-spacing: -0.64px;
    color: #1e1e1e;
}

/* Year content column: fills remaining, 20px top / 40px bottom */
.bolsas-year-content {
    flex: 1;
    padding-top: 20px;
    padding-bottom: 40px;
    color: #1e1e1e;
    letter-spacing: -0.44px;
}

/* Jury */
h3.bolsas-jury-title {
    font-family: var(--font-family);
    font-size: 26px;
    font-weight: 600;
    line-height: 1.35;
    color: #1e1e1e;
    margin-bottom: 5px;
}

.bolsas-jury {
    font-family: var(--font-family);
    font-size: 22px;
    line-height: 1.35;
    color: #1e1e1e;
    margin: 0;
}

.bolsas-jury p {
    font-size: 22px;
    line-height: 1.35;
    margin-bottom: 0;
}

/* Winners */
h3.bolsas-winners-title {
    font-family: var(--font-family);
    font-size: 26px;
    font-weight: 600;
    line-height: 1.35;
    color: #1e1e1e;
    margin-top: 30px;
    margin-bottom: 15px;
}

.bolsas-winners {
    font-family: var(--font-family);
    font-size: 22px;
    line-height: 1.35;
    color: #1e1e1e;
    margin: 0;
}

.bolsas-winners p {
    font-size: 22px;
    line-height: 1.35;
    margin-bottom: 0;
}

.bolsas-winners strong {
    font-weight: 600;
}

/* VER MAIS container */
.load-more-btn-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 124px;
}

.bolsas-years-load-more {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(30, 30, 30, 0.5);
    letter-spacing: -0.44px;
    color: #1e1e1e;
    text-align: center;
    display: block;
    width: 100%;
    background: none;
}

.bolsas-years-load-more:hover {
    text-decoration-color: #1e1e1e;
    color: #1e1e1e;
}

/* Apoios / Support section */
.bolsas-support-section {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
    padding: 80px 0 20px 0;
}

/* "Apoios" title: 64px like page h1 (not default 48px subtitle) */
.bolsas-support-section h2.filmaporto-block-subtitle {
    font-size: 4rem;
    letter-spacing: -0.08rem;
    line-height: 1;
    margin-bottom: 50px;
}

.bolsas-support-section-content {
    max-width: 1003px;
}

.bolsas-support-section-content p {
    font-size: 1.875rem;
    line-height: 1.35;
    margin: 0;
}

.bolsas-support-section-content a {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    text-decoration: none;
    color: #1e1e1e;
}

/* Legacy: bolsas-more toggle (static HTML pages) */
.bolsas-more.collapse { display: none; }
.bolsas-more.show     { display: block; }
.bolsas-more-toggle   { text-decoration: underline; color: #1e1e1e; }

/* ==========================================================================
   16. SESSÕES PAGE
   ========================================================================== */

.sessoes-page {
    background: #af96e7;
}

/* Hero: extra top breathing room, push bottom gap to ~100px before the next separator */
.sessoes-page .page-intro-section {
    padding-top: 100px;
    padding-bottom: 30px;
}

/* Title → lead gap: 50px */
.sessoes-page .filmaporto-block-title {
    margin-bottom: 50px;
}

/* Open Call section — full-opacity border, keep 80px top, increase bottom to 80px */
.sessoes-page .section-text-right-block {
    border-top-color: #1e1e1e;
    padding-bottom: 80px;
}

/* Override Bootstrap grid: two equal-width columns, 29px gap, flush left */
.sessoes-page .section-text-right-block .row {
    flex-wrap: nowrap;
    gap: 29px;
    align-items: flex-start;
    margin-left: 0;
    margin-right: 0;
}
.sessoes-page .section-text-right-block .col-lg-5,
.sessoes-page .section-text-right-block .col-12.col-lg-6.offset-lg-1 {
    flex: 1 0 0;
    width: auto;
    max-width: none;
    margin-left: 0;
    padding-left: 0;
    padding-right: 0;
}

/* Open Call h2: no bottom margin (aligns baseline to top of right column) */
.sessoes-page .section-text-right-block h2.filmaporto-block-subtitle {
    margin-bottom: 0;
}

/* Separator between Open Call and Histórico */
.sessoes-page .filmaporto-block-body .wp-block-separator {
    display: block;
    border: none;
    border-top: 1px solid #1e1e1e;
    margin: 0;
    opacity: 1;
}

/* Histórico section: 80px top/bottom padding */
.sessoes-page .sessoes-history-section {
    padding-top: 80px;
    padding-bottom: 0;
}

/* Histórico h2 → cards gap: 80px */
.sessoes-page .sessoes-history-section .filmaporto-block-subtitle {
    margin-top: 0;
    margin-bottom: 80px;
}

/* Card grid: 21px column gap, 40px row gap */
.sessoes-page .sessoes-grid {
    column-gap: 21px;
    row-gap: 40px;
    margin: 0;
}

/* Card: 20px padding, 20px gap between children */
.sessoes-page .sessoes-card {
    padding: 20px;
    gap: 20px;
}

/* Card date */
.sessoes-page .sessoes-date {
    font-size: 18px;
    color: rgba(30, 30, 30, 0.9);
    letter-spacing: -0.36px;
    text-transform: uppercase;
}

/* Card title */
.sessoes-page .sessoes-card-title {
    font-size: 30px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.6px;
    margin: 0;
}

/* Card body text */
.sessoes-page .sessoes-card-text p,
.sessoes-page .sessoes-card-text ul li {
    font-size: 22px;
    line-height: 1.25;
    letter-spacing: -0.44px;
    padding-top: 0;
    margin-bottom: 0;
}

/* Card footer: flush with card gap (no extra top padding) */
.sessoes-page .sessoes-card-footer {
    padding-top: 0;
    margin-top: auto;
}

/* VER MAIS: centered in 124px tall container */
.sessoes-page .load-more-btn-container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 124px;
}

.sessoes-page .sessoes-history-load-more {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    letter-spacing: -0.44px;
    text-decoration: none;
    color: #1e1e1e;
    text-align: center;
}


/* ==========================================================================
   17. POST GALLERY SLIDER (Splide.js)
   ========================================================================== */
.post-gallery-slider-section .pgs-splide {
    position: relative;
}

.post-gallery-slider-section .splide__track {
    overflow: visible;
}

.post-gallery-slider-section .splide__list {
    display: flex;
    align-items: center;
}

.post-gallery-slider-section .splide__slide {
    opacity: 1;
}

.post-gallery-slider-section .splide__slide.is-active {
    opacity: 1;
}

.post-gallery-slider-section .pgs-slide-wrapper {
    aspect-ratio: 16 / 9;
    width: 100%;
    max-height: 595px;
    position: relative;
    overflow: hidden;
}

.post-gallery-slider-section .pgs-center-link {
    display: block;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.post-gallery-slider-section .pgs-center-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.post-gallery-slider-section .pgs-caption {
    position: absolute;
    left: 12px;
    bottom: 12px;
    background: rgba(30, 30, 30, 0.6);
    color: #c8c8c8;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    padding: 6px 10px;
    border-radius: 3px;
    z-index: 2;
    pointer-events: none;
}

/* Splide arrows */
.post-gallery-slider-section .splide__arrows {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    pointer-events: none;
    z-index: 10;
}

.post-gallery-slider-section .splide__arrow {
    position: absolute;
    width: 423px;
    height: 567px;
    border-radius: 0;
    background: rgba(0, 0, 0, 0) !important;
    border:none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    pointer-events: auto;
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.2s ease;
}

.post-gallery-slider-section .splide__arrow:hover {
    background: rgba(0, 0, 0, 0);
    border-color: none;
}

.post-gallery-slider-section .splide__arrow--prev {
    left: -240px;
}

.post-gallery-slider-section .splide__arrow--next {
    right: -240px;
}

.post-gallery-slider-section .splide__arrow svg {
    display:none;
}

.post-gallery-slider-section .splide__arrow:disabled {
    opacity: 0;
    cursor: not-allowed;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .privacy-header {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 40px;
    }

    .privacy-title {
        font-size: 32px;
        letter-spacing: -0.64px;
    }

    .privacy-back-link {
        font-size: 18px;
    }
}

@media (max-width: 768px) {
    .post-gallery-slider-section .pgs-slide-wrapper {
        max-height: 400px;
    }

    .post-gallery-slider-section .splide__arrow {
    width: 20px;
    height: 170px;
    }

    .post-gallery-slider-section .splide__arrow--prev {
        left: -20px;
    }

    .post-gallery-slider-section .splide__arrow--next {
        right: -20px;
    }
}

/* ==========================================================================
   18. CF7 MULTISTEP (pagination)
   ========================================================================== */
.fp-steps {
    position: relative;
}
.fp-step {
    display: none;
}
.fp-step.active {
    display: block;
}
.fp-steps-nav {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
}
.fp-btn {
    appearance: none;
    border: 1px solid #1e1e1e;
    background: transparent;
    color: #1e1e1e;
    padding: 8px 12px;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    cursor: pointer;
}
.fp-btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}
.fp-progress {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 0.9rem;
    color: #333;
    margin: 6px 0 12px 0;
}

/* ==========================================================================
   19. CF7 FORM STYLES
   ========================================================================== */

::-webkit-input-placeholder {
    /* WebKit, Blink, Edge */
    color: rgba(30, 30, 30, 0.5) !important;
}
:-moz-placeholder {
    /* Mozilla Firefox 4 to 18 */
    color: rgba(30, 30, 30, 0.5) !important;
    opacity: 1;
}
::-moz-placeholder {
    /* Mozilla Firefox 19+ */
    color: rgba(30, 30, 30, 0.5) !important;
    opacity: 1;
}
:-ms-input-placeholder {
    /* Internet Explorer 10-11 */
    color: rgba(30, 30, 30, 0.5) !important;
}
::-ms-input-placeholder {
    /* Microsoft Edge */
    color: rgba(30, 30, 30, 0.5) !important;
}

::placeholder {
    /* Most modern browsers support this now. */
    color: rgba(30, 30, 30, 0.5) !important;
}

.form-container {
    width: 75%;
}

.wpcf7 form h2 {
    font-family: var(--font-extended);
    font-size: 24px;
    line-height: 2.1rem;
    margin: 24px 0 12px 0;
    color: #1e1e1e;
    margin-bottom: 30px;
    letter-spacing: normal !important;
}

.wpcf7 form h2.first {
    margin-bottom:53px;
}


.wpcf7 form .innerformheading {
    font-family: var(--font-extended);
    font-size: 1.25rem;
    margin: 10px 0 20px 0;
    color: #1e1e1e;
    line-height: 1.75rem;
    letter-spacing: normal !important;
}

.wpcf7 form .innerformheading h2 {
    letter-spacing: normal !important;
    font-size:24px;
}

.wpcf7 form .innerformheading h2.tab-counter {
    margin-bottom:0;
}

.wpcf7 form .innerformheading h3 {
    letter-spacing: normal !important;
    font-size:20px;
    margin-top: 36px;
}

.wpcf7 form .innerformsubheading {
    font-family: var(--font-extended);
    font-size: 1.25rem;
    margin: 30px 0 30px 0;
    color: #1e1e1e;
    line-height: 1.75rem;
    letter-spacing: normal !important;
}


.wpcf7 form .fieldsinfo {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 0.9rem;
    color: #555;
    margin-bottom: 8px;
}

.wpcf7-form-control .wpcf7-text {
    color: #1e1e1e;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
}

.wpcf7 form input[type="text"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="tel"],
.wpcf7 form input[type="url"],
.wpcf7 form textarea,
.wpcf7 form select {
    width: 100%;
    background: transparent;
    color: #1e1e1e !important;
    padding: 10px 0 10px 0;
    border-radius: 0;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.125rem;
    line-height: 1.125rem;
    border: none !important;
    border-bottom: 1px solid #1e1e1e !important;
}

.wpcf7 form textarea {
    min-height: 120px;
    resize: vertical;
}
.wpcf7 form input::placeholder,
.wpcf7 form textarea::placeholder {
    color: #666;
    opacity: 1;
}
.wpcf7 form input:focus,
.wpcf7 form textarea:focus,
.wpcf7 form select:focus {
    outline: none;
    box-shadow: none;
    border: none;
    border-bottom: 2px solid #1e1e1e;
}

/* Checkbox/radio list spacing */
.wpcf7 form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item,
.wpcf7 form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
    display: inline-block;
    margin: 6px;
}
.wpcf7 form .wpcf7-list-item-label {
    margin-left: 6px 6px 6px 0;
    border: 1px solid #1e1e1e;
    padding: 0px 12px 0px 12px;
    word-break: break-word;
}

.wpcf7-list-item {
    margin-left: 0em;
}
.wpcf7-form .wpcf7-checkbox input[type="checkbox"]:checked {
    accent-color: green !important;
}

/* Form boxes (categories) */
.wpcf7 form .formbox {
    border: 1px solid #1e1e1e !important;
    background: transparent;
    padding-top: 8px;
    padding-bottom: 8px;
}

/* Submit button */
.wpcf7 form input[type="submit"],
.wpcf7 form button[type="submit"] {
    appearance: none;
    border: 1px solid #1e1e1e;
    background: #1e1e1e;
    color: #c8c8c8;
    padding: 10px 0 10px 0;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1.1rem;
}
.wpcf7 form input[type="submit"]:hover,
.wpcf7 form button[type="submit"]:hover {
    background: #c8c8c8;
    color: #1e1e1e;
    border: 1px solid #1e1e1e;
}

/* Acceptance line */
.wpcf7 form .wpcf7-acceptance {
    display: block;
    margin: 8px 0;
}
.wpcf7-not-valid-tip {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    color: #c00;
    margin-top: 4px;
    font-size: 0.875rem;
}

.form-bordered-box {
    border: 1px solid rgba(30, 30, 30, 0.4);
    padding: 1em 2em 1em 2em;
    margin: 0 0 2em 0;
}

/* CF7 tabs + button-like checkboxes inside bordered form box */
/* Mobile dropdown - shown by default */
.form-bordered-box .fp-tabs-dropdown {
    display: block;
    width: 100%;
    padding: 6px 0 6px 0;
    margin: 8px 0 16px 0;
    font-family: var(--font-extended);
    font-size: .9rem;
    font-weight: 500;
    color: #1e1e1e;
    background-color: #c8c8c8;
    border: 1px solid #1e1e1e;
    border-radius: 0;
    cursor: pointer;
   
    padding-right: 40px;
}

.form-bordered-box .fp-tabs-dropdown option {
    font-family: var(--font-extended);
    font-size: .9rem;
    font-weight: 500;
    padding: 8px;
    white-space: normal;
    word-wrap:break-word; 
    width:100px;
}

/* Desktop tabs - hidden on mobile */
.form-bordered-box .fp-tabs-nav {
    display: none;
    margin: 8px 0 4px 0;
    border-bottom: 1px solid #1e1e1e;
    padding-bottom: 6px;
}

.form-bordered-box .fp-tab-button {
    appearance: none;
    background: transparent;
    border: none;
    color: #1e1e1e;
    font-family: var(--font-extended);
    font-size: 1.1rem;
    font-weight: 500;
    padding: 4px 4px;
    margin-right: 6px;
    cursor: pointer;
    display: inline-block;
    letter-spacing: normal !important;
}

.form-bordered-box .fp-tab-button:hover {
    text-decoration: underline;
}

.form-bordered-box .fp-tab-button[aria-selected="true"] {
    text-decoration: underline;
}

/* Media query for desktop - show tabs, hide dropdown */
@media (min-width: 768px) {
    .form-bordered-box .fp-tabs-dropdown {
        display: none;
    }

    .form-bordered-box .fp-tabs-nav {
        display: block;
    }
}

.form-bordered-box .fp-tab-panel[hidden] {
    display: none !important;
}
.form-bordered-box h4.innerformheading {
    display: none;
}
.form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 1rem;
    padding-top: 0;
    bottom: 0;
    display: inline-block;
    margin: 12px 12px 0 0 !important;
}

.form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}
.form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.form-bordered-box
    .wpcf7-form-control.wpcf7-checkbox
    .wpcf7-list-item
    label
    input[type="checkbox"]:checked
    + .wpcf7-list-item-label {
    background: #1e1e1e;
    color: #c8c8c8;
}

.form-bordered-box
    .wpcf7-form-control.wpcf7-checkbox
    .wpcf7-list-item
    label
    input[type="checkbox"]:hover
    + .wpcf7-list-item-label {
    background: #1e1e1e;
    color: #c8c8c8;
}

.form-bordered-box
    .wpcf7-form-control.wpcf7-checkbox
    .wpcf7-list-item
    label
    input[type="checkbox"]:disabled
    + .wpcf7-list-item-label {
    opacity: 0.5;
    cursor: not-allowed;
}
.form-bordered-box.limit-reached .fieldsinfo p {
    color: #c00;
    font-weight: 600;
}

.privacypolicycheckbox {
/*     margin-top: 36px; */
    margin-bottom: 36px;
}

.privacypolicycheckbox .wpcf7-list-item-label {
    font-family: var(--font-family);
    font-size: 16px;
    border: none !important;
    letter-spacing: normal;
}

.privacypolicycheckbox .wpcf7-list-item-label a {
    padding-bottom: 2px;
}

/* Counter below tabs */
.form-bordered-box .fp-tab-counter {
    font-family: var(--font-family);
    font-size: 1.125rem;
    color: #1e1e1e;
    margin: 4px 0 30px 0;
}

.codedropz-upload-container {
    padding: 0;
}

.wpcf7 form h2.codedropz-upload-title {
    margin-bottom: 36px;
}

.codedropz-upload-inner {
    padding: 36px;
    background-color: #d9d9d9;
}
.codedropz-upload-handler {
    border: none;
}

.codedropz-upload-inner {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    color: #666;
}
.codedropz-upload-inner h3,
.codedropz-upload-inner span {
    font-size: 1rem;
    font-weight: 400 !important;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    color: #1e1e1e;
}

.codedropz-upload-inner h3 span {
    font-size: 0.95rem;
    color: #5a5a5a;
}

a.cd-upload-btn {
    font-size: 1.1rem;
    font-weight: 400 !important;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    color: #1e1e1e;
    border: 1px solid #1e1e1e;
    padding: 5px 10px 5px 10px;
    background-size:
        100% 0px,
        0 0px;
}

a:hover.cd-upload-btn {
    background-color: #1e1e1e;
    color: #c8c8c8;
    background-size:
        100% 0px,
        0 0px;
}

.dnd-upload-counter {
    display: none;
}

/* .dnd-upload-counter {
  position: absolute;
  right: 25px;
  bottom: 20px;
  font-size: 12px;
} */

.sessoes-opencall {
    padding-top: 80px;
}

.sessoes-history {
    padding-top: 80px !important;
}

.sessoes-history h2.filmaporto-block-subtitle {
    margin-bottom: 60px !important;
}

.sessoes-opencall-section {
    border-top: 1px solid rgba(30, 30, 30, 0);
    padding-top: calc(1.5rem + 1em);
    padding-bottom: calc(1.5rem + 1em);
}

.sessoes-history-section {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
    padding-top: calc(1.5rem + 1em);
    padding-bottom: calc(1.5rem + 1em);
}

.sessoes-history-section h2.filmaporto-block-subtitle {
    margin-bottom: 80px;
}

/* Two-column layout: title on left, links on the right */
.sessoes-opencall-section > .container-fluid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: start;
}

.sessoes-opencall-section .sessoes-links {
    grid-column: 2;
    justify-self: end;
    margin-right: 12px;
}

.sessoes-opencall-section .filmaporto-block-subtitle {
    grid-column: 1;
}

.sessoes-links {
    list-style: none;
    padding-left: 0;
}
.sessoes-links li {
    margin: 6px 0;
}
.sessoes-links a {
    color: #1e1e1e;
    text-decoration: underline;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
}

/* down arrow */
.sessoes-links a::before {
    content: "\2193 ";
}

.sessoes-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    row-gap: 40px;
    column-gap: 24px;
    margin: 12px 0 12px 0;
}
.sessoes-card {
    border: 1px solid rgba(30, 30, 30, 0.5);
    padding: 12px;
    display: flex;
    flex-direction: column;
}

.sessoes-date {
    font-family: var(--font-family);
    font-size: 1.125rem;
    color: #1e1e1e;
}
.sessoes-card-title {
    font-family: var(--font-family);
    font-size: 1.875rem;
    margin: 15px 0 25px 0;
    line-height: 125%;
    font-weight: 600;
 letter-spacing:normal;
}

.sessoes-card-text p {
    font-family: var(--font-family);
    font-size: 1.375rem;
    line-height: 1.719rem;
    margin-bottom: 12px;
}

.sessoes-card-text ul {
    list-style-type:none;
    padding-left:0;
}

.sessoes-card-text ul li {
    font-size: 1.375rem;
    line-height: 1.719rem;
    padding-left: 1.05em;
    padding-top: 10px;
}

.sessoes-card-text ul li::before {
    content: "";
    display: inline-block;
    width: 0.6em;
    height: 0.6em;
    background-color: currentColor;
    margin-left: -1.05em;
    margin-right: 0.45em;
    vertical-align: 0.1em;
    flex-shrink: 0;
}

.sessoes-card-text ul li:only-child::before {
    display: none;
}

.sessoes-bullets {
    padding-left: 1rem;
    margin-bottom: 8px;
    list-style: square;
}
.sessoes-card-footer {
    margin-top: auto;
    padding-top: 2em;
    align-self: flex-start;
}

.tag {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    display: inline-block;
    border: 1.5px solid #1e1e1e;
    padding: 4px 8px;
    font-size: 0.938rem;
    font-weight: 500;
    letter-spacing: -0.3px;
    line-height: 1.3;
    max-width: 200px;
    word-break: break-word;
}

.sessoes-more.collapse {
    display: none;
}
.sessoes-more.show {
    display: block;
}
.sessoes-more-toggle {
    text-decoration: underline;
    color: #1e1e1e;
}

/* ==========================================================================
   20. NOTÍCIAS PAGE (noticias.html)
   ========================================================================== */

.noticias-page {
    background: #5d90e6;
}

.noticias-grid-section {
    padding: 40px 0 80px 0;
}

h1.noticias-title {
    font-size: 64px;
    letter-spacing: -1.28px;
    line-height: 1;
    color: #1e1e1e;
    margin-bottom: 60px;
}

h1.noticias-title:hover {
    text-decoration: underline;
}

.noticias-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 20px;
    row-gap: 32px;
}

.noticia-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
}

.noticia-image {
    width: 100%;
    height: 313px;
    object-fit: cover;
    display: block;
}

.noticia-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-right: 30px;
}

.noticia-tags > .pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border: 1.4px solid #1e1e1e;
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: -0.3px;
    line-height: 1.3;
    max-width: 200px;
    word-break: break-word;
}

.noticia-title {
    padding: 0 30px 0 0;
}

.noticia-title a {
    font-family: var(--font-family);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -0.56px;
    line-height: 1.25;
    color: #1e1e1e;
    text-decoration: none;
    background: none;
}

.noticia-title a:hover {
    text-decoration: underline;
}

.noticia-date {
    font-family: var(--font-family);
    font-size: 18px;
    color: rgba(30, 30, 30, 0.9);
    letter-spacing: -0.36px;
    text-transform: uppercase;
    padding-right: 30px;
}

.noticias-more {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 124px;
}

.noticias-load-more {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    text-decoration: underline;
    letter-spacing: -0.44px;
    color: #1e1e1e;
    display: block;
    width: 100%;
    text-align: center;
    background: none;
}

.noticias-load-more:hover {
    color: #1e1e1e;
    opacity: 0.7;
}

/* Single news page */
.container-single-noticia {
    max-width: 887px;
}

.noticia-page {
    background: #5d90e6;
    display: flex;
    flex-direction: column;
    gap: 80px;
    padding-bottom: 80px;
}

.noticia-article-body {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.noticia-hero {
    width: 100%;
    height: 398px;
    object-fit: cover;
    display: block;
}

.noticia-back-line {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: -0.36px;
    color: #1e1e1e;
    margin: 0;
}

.noticia-back {
    color: #1e1e1e;
}

.noticia-back:hover {
    text-decoration: none;
}

.noticia-title-single {
    font-family: var(--font-extended);
    font-size: 44px;
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.88px;
    color: #1e1e1e;
    margin: 0;
}

.noticia-related-section {
    padding: 10px 0;
}

.noticia-related-title {
    font-family: var(--font-extended);
    font-size: 48px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.96px;
    color: #1e1e1e;
    margin: 0 0 40px 0;
}

.noticia-body {
    font-size: 24px;
    line-height: 1.4;
    color: #1e1e1e;
}

.noticia-body p {
    font-size: 24px;
    letter-spacing: normal;
    line-height: 1.4;
    margin-bottom: 0;
}

.noticia-gallery,
.noticia-body .wp-block-gallery {
    display: flex;
    gap: 20px;
}

.noticia-gallery img,
.noticia-gallery figure,
.noticia-body .wp-block-gallery .wp-block-image,
.noticia-body .wp-block-gallery .wp-block-image img {
    flex: 1;
    width: 0;
    height: 442px;
    object-fit: cover;
}

.noticia-body .wp-block-gallery {
    flex-wrap: nowrap;
}

.noticia-body .wp-block-gallery .wp-block-image {
    margin: 0;
}

.carousel-inner {
    height: 595px;
}

.noticias-photo-credits {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 0.9rem;
    color: #1e1e1e;
    margin-top: 4px;
}

/* ==========================================================================
   21. SOBRE PAGE (sobre.html)
   ========================================================================== */

/* Hero / intro section — sobre page (ID 2513) */
body.page-id-2513 .filmaporto-block-title {
    letter-spacing: -1.28px;
    margin-bottom: 50px;
}

body.page-id-2513 .filmaporto-block-lead,
body.page-id-2513 .filmaporto-block-lead p {
    font-size: 30px;
    line-height: 1.35;
}

body.page-id-2513 .filmaporto-block-lead {
    max-width: 1003px;
    width: 100%;
    margin-bottom: 0;
}

/* Stats / Activity section */
.sobre-activity-section {
    padding: 100px 0 100px 0;
}

.sobre-activity-section h2.filmaporto-block-subtitle {
    font-size: 48px;
    letter-spacing: -0.96px;
    line-height: 1;
    margin-bottom: 30px !important;
    margin-top: 0 !important;
}

.sobre-activity-section .filmaporto-block-lead,
.sobre-activity-section .filmaporto-block-lead p {
    font-size: 28px;
    line-height: 1.3;
}

.sobre-activity-section .filmaporto-block-lead {
    max-width: 100%;
    width: 100%;
    margin-bottom: 60px !important;
}

.sobre-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* Horizontal slider variant */
.sobre-stats.is-slider {
    display: flex;
    gap: 20px;
    overflow: hidden;
    width: 100%;
}

.sobre-stats.is-slider .sobre-stat {
    flex: 0 0 calc((100% - 40px) / 3);
    height: auto;
}

.sobre-stat {
    border: 1.4px solid #1e1e1e;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: transparent;
    text-align: left;
}

.sobre-stat .stat-number {
    font-family: var(--font-extended);
    font-size: 40px;
    letter-spacing: -0.8px;
    line-height: 1;
    font-weight: 500;
    margin: 0;
}

.sobre-stat .stat-label {
    font-size: 24px;
    line-height: 1.3;
    height: 150px;
    overflow: hidden;
    margin: 0;
}

.sobre-stat .stat-label p {
    font-size: 24px;
    line-height: 1.3;
    margin: 0;
}

.sobre-stat strong {
    display: block;
    font-size: 2rem;
}

.sobre-activity-section .sobre-bottom-row {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 50px;
}

.sobre-activity-section .sobre-bottom-text,
.sobre-activity-section .sobre-bottom-text p {
    font-size: 22px;
    line-height: 1.3;
    margin: 0;
}

.sobre-activity-section .sobre-history-load-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.sobre-activity-section .sobre-history-load-more,
.sobre-activity-section .sobre-history-load-less,
.sobre-activity-section .sobre2024-load-more {
    font-family: var(--font-extended);
    font-size: 64px;
    line-height: 1;
    color: #1e1e1e;
    text-decoration: none;
    background: none;
    transition: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sobre-activity-section .sobre-history-load-less {
    visibility: hidden;
}

/* Team section */
.sobre-team-section {
    border-top: 1.4px solid #1e1e1e;
    padding-top: 100px !important;
    margin-top: 0 !important;
    padding-bottom: 100px;
}

.sobre-team {
    list-style: none;
    padding-left: 0;
}

.sobre-team .name {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
}

.sobre-team-section h2.filmaporto-block-subtitle {
    font-size: 48px;
    letter-spacing: -0.96px;
    line-height: 1;
}

.sobre-team-section p {
    font-size: 24px;
    line-height: 1.55;
    margin-bottom: 25px;
}

.sobre-team-section p:last-child {
    margin-bottom: 0;
}

.sobre-team-section .role {
    font-family: var(--font-ibm-mono);
    font-feature-settings: var(--font-ibm-features);
    font-size: 20px;
    letter-spacing: -0.4px;
    line-height: 1.55;
    display: block;
}

.sobre-team-section .role:before {
    content: "■ ";
    color: #1e1e1e;
}

.load-more-btn-container {
    text-align: center;
    margin: 60px 0 24px 0;
}

.load-more-btn-container a {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    color: #1e1e1e;

    padding-bottom: 2px;
    text-transform: uppercase;
    font-size: 1.375rem;
    text-underline-offset: 4px;
}

.load-more-btn-container a:hover {
    color: #1e1e1e;
    text-decoration: none;
}

/* ==========================================================================
   22. LEAFLET MAP – THEME OVERRIDES
   ========================================================================== */

/* Container and canvas */
.leaflet-container {
    background: #c8c8c8;
    outline: none;
}
.filmar-map {
    position: relative;
    height: 520px;
    background: #c8c8c8;
}
.leaflet-map {
    position: absolute;
    inset: 0;
}

/* Controls: square, monospace, high-contrast */
.leaflet-control-zoom,
.leaflet-control-layers {
    border: 1px solid #ddd;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}
.leaflet-bar a,
.leaflet-bar a:hover {
    border-bottom: 1px solid #ddd;
}
.leaflet-bar a {
    background: #c8c8c8;
    color: #1e1e1e;
    border-radius: 0;
    box-shadow: none;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
}
.leaflet-bar a:hover {
    background: #f3f3f3;
    color: #1e1e1e;
}
.leaflet-bar a:first-child {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
.leaflet-bar a:last-child {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Attribution */
.leaflet-control-attribution {
    background: rgba(255, 255, 255, 0.95);
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 11px;
    border: 1px solid #ddd;
    border-radius: 0;
    box-shadow: none;
}
.leaflet-control-attribution a {
    color: inherit;
    text-decoration: underline;
}

/* Popup */
.leaflet-popup-content-wrapper {
    background: #c8c8c8;
    border: 1px solid #ddd;
    border-radius: 0;
    box-shadow: none;
}

.leaflet-popup-tip {
    background: #c8c8c8;
    border: 1px solid #ddd;
    box-shadow: none;
}
.leaflet-popup-content {
    margin: 10px 12px;
    line-height: 1.6;
    font-family: var(--font-family, sans-serif);
}

.leaflet-popup-content h3 {
    font-size: 1.5em;
}

.leaflet-popup-content a {
    color: #1e1e1e;
    text-decoration: underline;
}

.leaflet-popup-content p {
    font-size: 1.1em !important;
    line-height: 120% !important;
}

/* Remove menu on homepage hack */

body.home .filmabut,
body.home .sessoesbut,
body.home .noticiasbut,
body.home .sobrebut,
body.home .bolsasbut {
    display: none;
}

/* Back to top button */
.back-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 54px;
    height: 54px;

    background: rgba(255, 255, 255, 0);

    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
    z-index: 1049;
    border: none;
}

.back-to-top img {
    width: 24px;
    height: 24px;
}

.back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

/* CF7 privacy policy checkbox */
.privacypolicycheckbox input[type="checkbox"] {
    accent-color: #1e1e1e;
    background-color: #c8c8c8;
    border: 1px solid #1e1e1e;
    width: 18px;
    height: 18px;
}
/* Accordion panel: show/hide is handled by display:none → display:block via .open class */

/* ==========================================================================
   24. PROFISSIONAIS REGISTRATION PAGE
   ========================================================================== */

.prof-page {
    background: #c8c8c8;
}

.prof-container {
    padding-top: 80px;
    padding-bottom: 80px;
}

/* Header row */
.prof-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 80px;
    gap: 24px;
}

.prof-title {
    font-family: var(--font-extended);
    font-size: 48px;
    letter-spacing: -0.96px;
    line-height: 1;
    color: #1e1e1e;
    margin: 0;
}

.prof-back-link {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    color: #1e1e1e;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    letter-spacing: -0.44px;
    white-space: nowrap;
}
.prof-back-link:hover {
    color: #1e1e1e;
    text-decoration: underline;
}

/* Form layout */
.prof-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

/* Card (each form section box) */
.prof-card {
    border: 0.5px solid #1e1e1e;
    padding: 40px;
    width: 890px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.prof-card-title {
    font-family: var(--font-extended);
    font-size: 24px;
    line-height: 1.4;
    color: #1e1e1e;
    margin: 0;
}

.prof-card-title--sm {
    font-size: 20px;
}

.prof-card-header {
    display: flex;
    align-items: baseline;
    gap: 16px;
}

.prof-count {
    font-family: var(--font-family, 'Inter', sans-serif);
    font-size: 16px;
    line-height: 1.8;
    color: #1e1e1e;
}

/* Fields */
.prof-fields {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.prof-field-full {
    width: 100%;
}

.prof-field-row {
    display: flex;
    gap: 30px;
}

.prof-field-row .prof-input {
    flex: 1;
    min-width: 0;
}

.prof-input {
    display: block;
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #1e1e1e;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 18px;
    color: #1e1e1e;
    padding: 12px 0;
    line-height: 1;
}
.prof-input::placeholder {
    color: #1e1e1e;
    opacity: 1;
}
.prof-input:focus {
    outline: none;
    box-shadow: none;
    border-color: #1e1e1e;
}

/* Productions */
.prof-productions {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.prof-production-label {
    font-family: var(--font-extended);
    font-size: 20px;
    line-height: 1.4;
    color: #1e1e1e;
    margin: 0 0 20px 0;
}

/* Category tabs */
.prof-cat-tabs {
    display: flex;
    gap: 20px;
    border-bottom: 0.4px solid #1e1e1e;
    overflow-x: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.prof-cat-tabs::-webkit-scrollbar {
    display: none;
}

.prof-cat-tab {
    flex-shrink: 0;
    height: 40px;
    display: flex;
    align-items: center;
    background: transparent;
    border: none;
    border-bottom: 1.4px solid transparent;
    padding: 0;
    font-family: var(--font-extended);
    font-size: 16px;
    color: #1e1e1e;
    cursor: pointer;
    white-space: nowrap;
    margin-bottom: -0.4px;
}
.prof-cat-tab.is-active {
    border-bottom-color: #1e1e1e;
}

/* Chip groups */
.prof-chip-group {
    display: none;
    flex-wrap: wrap;
    gap: 10px 12px;
}
.prof-chip-group.is-active {
    display: flex;
}

.prof-chip {
    display: inline-flex;
    cursor: pointer;
    margin: 0;
}

.prof-chip-input {
    display: none;
}

.prof-chip-label {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #1e1e1e;
    padding: 8px 10px;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 16px;
    color: #1e1e1e;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1;
}

.prof-chip-input:checked + .prof-chip-label {
    background: #1e1e1e;
    color: #c8c8c8;
}

/* Privacy + Submit footer */
.prof-form-footer {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 890px;
    max-width: 100%;
}

.prof-privacy {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}

.prof-privacy-check {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    accent-color: #1e1e1e;
    cursor: pointer;
}

.prof-privacy-text {
    font-family: var(--font-family, 'Inter', sans-serif);
    font-size: 16px;
    color: #1e1e1e;
    line-height: 1;
}

.prof-privacy-text a {
    color: #1e1e1e;
    text-decoration: underline;
    text-decoration-thickness: 1px;
}

.prof-submit {
    display: block;
    width: 100%;
    background: #2c2c2c;
    border: 1px solid #2c2c2c;
    color: #c8c8c8;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 16px;
    padding: 12px;
    cursor: pointer;
    border-radius: 0;
    text-align: center;
}
.prof-submit:hover {
    background: #1e1e1e;
    border-color: #1e1e1e;
}
.prof-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Response message */
.prof-response {
    width: 890px;
    max-width: 100%;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 16px;
    padding: 0;
    text-align: center;
}
.prof-response.is-success {
    color: #1e1e1e;
}
.prof-response.is-error {
    color: #c0392b;
}

/* ==========================================================================
   23. RESPONSIVE DESIGN - CONSOLIDATED MEDIA QUERIES
   ========================================================================== */

/* ===== MIN-WIDTH MEDIA QUERIES ===== */

@media (min-width: 992px) {
}

/* ===== MAX-WIDTH MEDIA QUERIES ===== */

@media (max-width: 991.98px) {
    /* Navigation - Mobile Navigation */
    /* Fullscreen mobile menu overlay */
    .navbar-collapse {
        position: fixed;
        inset: 0;
        background: #c8c8c8; /* match mockup */
        z-index: 1050;
        padding-top: 32px;
        padding-right: 20px;
        padding-bottom: 2rem;
        padding-left: 20px;
        overflow-y: auto;
    }

    .mobile-menu-header {
        font-family: var(--font-extended);
        color: var(--color-primary);
        letter-spacing: -0.05rem;
        margin-bottom: 30px !important;
    }
    .mobile-menu-title {
        font-size: 28px;
        font-weight: 500;
        line-height: 1;
        letter-spacing: -0.56px;
    }

    .mobile-menu-close {
        background-image: url("../images/icon-menu-close.svg") !important;
        background-repeat: no-repeat !important;
        background-position: center right !important;
        background-size: 36px auto !important;
        border: 0;
        width: 36px;
        height: 34px;
    }

    /* Stack menu items as colored cards */
    .navbar-collapse .navbar-nav {
        width: 100%;
        margin-top: 0.5rem;
        padding-top: 0;
        align-items: stretch !important;
    }
    .navbar-collapse .navbar-nav > li {
        width: 100%;
        margin: 0 0 1rem 0;
    }
    .navbar-collapse .navbar-nav > li > a,
    .navbar-collapse .navbar-nav > li > .nav-link,
    .navbar-collapse .navbar-nav > li > .nav-button {
        display: grid;
        align-content: end;
        height: 115px;
        padding: 12px;
        border: 1.5px solid #1e1e1e;
        text-decoration: none;
        font-family: var(--font-extended);
        font-weight: 500;
        font-size: 1.755rem;
        line-height: 1em;
        color: var(--color-primary) !important;
        background: var(--portal-gray, #e0e0e0);
        letter-spacing: -0.05rem;
    }
    /* Colors per item order */
    .navbar-collapse .navbar-nav > li:nth-child(1) > a {
        background: var(--portal-orange, #ffa53e);
    }
    .navbar-collapse .navbar-nav > li:nth-child(2) > a {
        background: var(--portal-pink, #f76782);
    }
    .navbar-collapse .navbar-nav > li:nth-child(3) > a {
        background: var(--portal-purple, #af96e7);
    }
    .navbar-collapse .navbar-nav > li:nth-child(4) > a {
        background: var(--portal-blue, #5d90e6);
    }
    .navbar-collapse .navbar-nav > li.lang-item > a {
        background: #c8c8c8;
    }
    .navbar-collapse .navbar-nav > li.lang-item {
        text-decoration: none;
    }

    /* Hide desktop-oriented button/language tweaks */
    .nav-button {
        margin: 0;
        text-align: left;
    }
    .language-toggle {
        margin-top: 0.5rem;
        text-align: left;
    }

    .btn-gallery {
        margin-top: 1rem;
        float: none !important;
        display: block;
        text-align: left;
    }

    .home-gallery-image {
        margin-top: 0;
    }

    .btn-link-arrow-wrapper {
        margin-bottom: 12px;
    }

    .btn-link-arrow-wrapper span.arrow-icon-back {
        rotate: -45deg;
        display: inline-block;
        opacity: 1;
        font-family: var(--font-ibm-mono);
        font-feature-settings: var(--font-ibm-features);
        vertical-align: baseline;
        font-weight: 400;
    }

    .btn-gallery span.arrow-icon {
        rotate: 45deg;
        display: inline-block;
        opacity: 1;
        font-family: var(--font-ibm-mono);
        font-feature-settings: var(--font-ibm-features);
        vertical-align: baseline;
        font-weight: 400;
    }
}

@media (max-width: 992px) {
    /* Décors Page - Grid responsive tweaks */
    .decors-grid .decors-card {
        width: calc(50% - 5px);
        height: 250px;
    }

    /* Sessões Page - Grid */
    .sessoes-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Notícias Page - Grid */
    .noticias-grid {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 40px;
    }
}

@media (max-width: 940px) {
    /* Sections & Layout - Navigation Grid */
    .navigationGrid .rect .content {
        font-size: 1.7rem;
    }
}

@media (max-width: 768px) {
    /* Base Styles - Typography */
    body {
        font-size: 1rem;
        padding: 0 24px 0 24px;
    }

    p {
        font-size: 1.125rem;
        font-size: 18px;
        line-height: 1.4;
    }

    /* Navigation - Current menu item */
    .current-menu-item > a.nav-link,
    .current-menu-item > a.nav-button,
    .current-menu-item > a.nav-link.nav-button {
        color: #1e1e1e !important;
    }
    .current-menu-item > a.nav-button:hover,
    .current-menu-item > a.nav-button:focus {
        color: #1e1e1e !important;
    }

    /* Sections & Layout - Directory Section */
    .directory-section {
        margin-top: 50px;
    }

    .directory-section .section-description {
        max-width: 100%;
    }

    .explore-section {
        margin-top: 160px;
    }

    /* Directory Section - Card headings */
    .directory-card h5 {
        font-size: 1.1em;
    }

    /* Gallery & Buttons */
    .home-gallery-image {
        margin-top: 0;
    }

    .btn-gallery {
        margin-top: 1rem;
        float: none !important;
        display: block;
        text-align: left;
    }

    .btn-link-arrow-wrapper {
        width: 100%;
        justify-content: flex-start;
    }

    .btn-link-arrow-wrapper span.arrow-icon-back {
        font-size: 16px;
    }

    .btn-gallery span.arrow-icon,
    .btn-gallery span.arrow-icon-back,
    .btn-link-arrow-wrapper span.arrow-icon,
    .btn-link-arrow-wrapper span.arrow-icon-back {
        opacity: 1;
    }

    /* Décors Page - Filters */
    .decors-filter-toggle {
        display: flex;
        font-size: 12px;
        font-weight: 500;
        padding: 5px 10px;
    }

    .decors-filters-desktop {
        display: none !important;
    }

    .decors-header-row {
        flex-wrap: nowrap;
        align-items: center;
        gap: 16px;
        margin-bottom: 20px;
    }

    .decors-header-left {
        flex: 1;
        align-items: center;
    }

    .decors-header-right {
        flex: 0 0 auto;
        justify-content: flex-end;
        align-items: center;
    }

    .decors-cta {
        display: none;
    }

    .decors-cta-mobile {
        display: block;
        margin-bottom: 30px;
    }

    .decors-cta-mobile span.arrow-icon-back {
        display: none;
    }

    .decors-section .filmaporto-block-title {
        font-size: 30px;
        letter-spacing: -0.6px;
        line-height: 1;
    }

    /* Décors Page - Lightbox */
    .lightbox-prev,
    .lightbox-next {
        top: auto;
        bottom: 32px;
        transform: none;
    }

    .lightbox-prev {
        left: 32px;
    }

    .lightbox-next {
        right: 32px;
    }

    /* Video Section */
    .video-section {
        margin-top: 80px;
    }

    /* Footer */
    .footer {
        margin-top: 100px;
        padding-top: 30px !important;
    }

    .footer-title {
        font-size: 1.25rem;
    }
    .footer-links,
    .footer-address p,
    .footer-links a {
        font-size: 1rem;
    }

    /* Filmar No Porto - Accordion: stack 3 columns on tablet/mobile */
    .filmar-permit-row {
        flex-wrap: wrap;
    }

    .filmar-acc-header,
    .section-text-right-acc-header {
        flex: 0 0 85%;
        width: 85%;
    }

    .filmar-permit-toggle {
        flex: 0 0 15%;
        width: 15%;
    }

    .filmar-acc-panel,
    .section-text-right-acc-panel {
        flex: 0 0 100%;
        width: 100%;
        padding-top: 16px;
    }

    .section-text-right-acc-item.open .filmar-permit-row {
        padding-bottom: 40px;
    }

    /* Filmar No Porto - Map */
    .filmar-hero-collage img {
        height: 160px;
        width: 33%;
    }
    .filmar-lead {
        width: 100% !important;
    }

    /* Responsive Design Section - Navigation Grid & Typography */
    .navigationGrid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    /* Tablet: adjust navigation grid card title size */
    .navigationGrid .rect .content {
        font-size: 1.7rem;
    }

    .portalText {
        font-size: 20px;
    }

    .section-title {
        font-size: 1.75rem;
    }

    .directory-image {
        height: 215px;
    }

    .btn-play {
        width: 80px;
        height: 80px;
    }

    /* Post Gallery Slider */
    .post-gallery-slider-section .pgs-left {
        margin-right: 20px;
    }
    .post-gallery-slider-section .pgs-right {
        margin-left: 20px;
    }
    .carousel-inner {
        height: auto !important;
    }

    /* CF7 Form Styles */
    .form-container {
        width: 85%;
    }

    /* Notícias Page */
    .noticia-image {
        width: 100%;
        height: 260px;
        object-fit: cover;
        display: block;
        border-bottom: none;
    }

    /* Sobre Page */
    .sobre-page .filmaporto-block-title {
        font-size: 40px;
        letter-spacing: -0.8px;
    }

    body.page-id-2513 .filmaporto-block-lead,
    body.page-id-2513 .filmaporto-block-lead p {
        font-size: 22px;
    }

    .sobre-activity-section {
        padding: 40px 0 60px 0;
    }

    .sobre-activity-section h2.filmaporto-block-subtitle {
        font-size: 32px !important;
        letter-spacing: -0.64px;
    }

    .sobre-activity-section .filmaporto-block-lead,
    .sobre-activity-section .filmaporto-block-lead p {
        font-size: 20px;
    }

    .sobre-stats.is-slider {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .sobre-stats.is-slider::-webkit-scrollbar {
        display: none;
    }

    .sobre-stats.is-slider .sobre-stat {
        flex: 0 0 85vw;
        max-width: 85vw;
        scroll-snap-align: start;
    }

    .sobre-stats {
        grid-template-columns: 1fr;
    }

    .sobre-stat .stat-label {
        font-size: 18px;
        height: auto;
    }

    .sobre-stat .stat-label p {
        font-size: 18px;
    }

    .sobre-stat .stat-number {
        font-size: 32px;
    }

    .sobre-activity-section .sobre-bottom-row {
        flex-wrap: wrap;
        gap: 16px;
    }

    .sobre-activity-section .sobre-history-load-btn {
        margin-left: 0;
    }

    .sobre-activity-section .sobre-history-load-more,
    .sobre-activity-section .sobre-history-load-less,
    .sobre-activity-section .sobre2024-load-more {
        font-size: 40px;
    }

    .sobre-team-section {
        padding-top: 48px !important;
        padding-bottom: 48px;
    }

    .sobre-team-section h2.filmaporto-block-subtitle {
        font-size: 32px !important;
        letter-spacing: -0.64px;
        margin-bottom: 32px;
    }

    .sobre-team-section p {
        font-size: 18px !important;
        line-height: 1.55;
        margin-bottom: 20px;
    }

    .sobre-team-section .role {
        font-size: 16px !important;
        letter-spacing: normal;
    }
}

/** 
Extra small devices (portrait phones, less than 576px)
No media query since this is the default in Bootstrap 
**/


@media (max-width: 576px) {
    /* Base Styles - Typography */
    body {
        font-size: 1rem;
        padding: 0 24px 0 24px;
    }

    p {
        font-size: 1.125rem;
        font-size: 18px;
        line-height: 1.4;
    }

    .navigationGrid svg.lines line {
        stroke: #1e1e1e;
        stroke-width: 1;
        vector-effect: non-scaling-stroke;
    }

    /* Sections & Layout - Directory & Explore Sections */
    .directory-section {
        margin-top: 80px;
    }

    .explore-section {
        margin-top: 80px;
    }

    .explore-section-header {
        margin-bottom: 1.5rem !important;
    }

    /* Directory Section - Card headings */
    .directory-card h5 {
        font-size: 18px;
        height: 60px;
    }

    /* Gallery & Buttons */
    .home-gallery-image {
        margin-top: 0;
    }

    .home-gallery-image img {
        width: 100%;
    }

    .directory-section h2.section-title {
        font-size: 36px !important;
        letter-spacing: -0.72px;
        line-height: 1.1;
        margin-bottom: 24px !important;
    }

    .directory-section .section-description {
        margin-bottom: 24px !important;
    }

    h2.decors-title {
        font-size: 2rem !important;
        letter-spacing: -0.64px;
        line-height: 1.1;
        margin-bottom: 20px !important;
    }

    .btn-gallery {
        font-size: 16px;
        letter-spacing: -0.32px;
    }

    .btn-gallery a {
        text-decoration: underline;
        text-decoration-skip-ink: none;
    }

    /* video section */
    .home-video-title {
        font-size: 24px;
        letter-spacing: -0.48px;
        line-height: 1.1;
        margin-bottom: 1.5rem;
    }

    .btn-play {
        width: 60px;
        height: 60px;
    }

    /* Page Primitives */
    .filmaporto-block-title {
        font-size: 2.5rem;
        margin-bottom: 20px;
    }

    .filmaporto-block-lead,
    .filmaporto-block-lead p {
        line-height: 135%;
        color: #1e1e1e;
        font-size: 1.375rem;
        font-size: 22px;
        letter-spacing: normal;
        font-weight: 400 !important;
    }

    .filmaporto-block-lead {
        margin-bottom: 40px;
        width: 100%;
    }

    h2.filmaporto-block-subtitle {
        font-size: 26px;
        line-height: 100%;
        letter-spacing: -0.52px;
        margin-bottom: 25px;
    }

    .bolsas-items h2.filmaporto-block-subtitle {
       margin-bottom:12px;
    }

    .filmaporto-block-body-text {
        font-size: 18px;
        line-height: 135%;
    }

    .filmaporto-block-body-text p {
        font-size: 18px;
        line-height: 135%;
    }

    .filmaporto-block-body-text a {
        font-size: 18px;
    }

    .title-link-right-block {
        margin-bottom: 10px;
        padding-bottom: 10px !important;
    }

    .title-link-right-block  h2.filmaporto-block-subtitle {
        font-size: 30px;
        line-height: 100%;
        margin-bottom: 12px;
    }


    a.title-link-right {
        font-size: 1rem;
        margin-bottom:12px;
    }



    /* Footer */
    .footer {
        margin-top: 80px;
        padding-top: 30px !important;
    }

    .footer-first-column .footer-title {
        margin-top:10px;
        margin-bottom: 20px;
    }

    .footer-last-column .footer-links {
        margin-bottom: 30px;
    }

    .footer-title {
        margin-bottom: 15px;
        font-size: 1.325rem;
    }

    .footer-links {
        margin-bottom: 50px;
    }

    .afcilink {
        margin-right: 0;
    }

    a.afcilink img {
        margin-right: 0;
    }

    a.eufcnlink {
        margin-top: 12px;
    }

    .partner-logo {
        height: 25px;
        width: auto;
        opacity: 1;
    }

    .eufcnlink .partner-logo {
        height: 28px;
    }

    .partner-text {
        font-size: 0.70rem;
        margin-bottom: 5px;
    }

    .porto-logo {
        margin-top: 18px;
        height: 27px;
    }

    /* Filmar No Porto - Hero Collage */
    .filmar-hero-collage {
        position: relative;
        height: 266px;
        display: block;
        overflow: visible;
    }

    .filmar-hero-collage img {
        position: absolute;
        object-fit: cover;
        flex: none;
        height: auto;
    }

    /* Image 1: bottom-left wide (284×160, left:21, top:106) */
    .filmar-hero-collage img:nth-child(1) {
        width: 284px;
        height: 160px;
        left: 21px;
        top: 106px;
    }

    /* Image 2: top-right square (167×167, left:159, top:0) */
    .filmar-hero-collage img:nth-child(2) {
        width: 167px;
        height: 167px;
        left: 159px;
        top: 0;
    }

    /* Image 3: mid-left portrait (159×107, left:0, top:34) */
    .filmar-hero-collage img:nth-child(3) {
        width: 159px;
        height: 107px;
        left: 0;
        top: 34px;
    }

    /* Filmar No Porto - Accordion */
    .filmar-acc-header,
    .section-text-right-acc-header {
        font-size: 18px;
        line-height: 1.35;
        letter-spacing: -0.36px;
    }

    .filmar-permit-row {
        padding: 10px 0;
    }

    .filmar-permit-toggle {
        font-size: 18px;
        line-height: 1.35;
    }

    .filmar-o-porto-page .filmaporto-block-title {
        letter-spacing: -0.8px;
        line-height: 1.1;
    }

    .section-text-right-block h2.filmaporto-block-subtitle {
        letter-spacing: -0.52px;
    }

    .filmar-o-porto-page .arrow-list li {
        font-size: 16px;
    }

    .section-text-right-block {
        padding: 40px 0 20px 0;
    }

    .section-text-right-block .filmaporto-block-body-text,
    .section-text-right-block .filmaporto-block-body-text p {
        font-size: 18px;
        line-height: 135%;
    }

    .section-text-right-acc-panel p {
        font-size: 15px;
        line-height: 135%;
    }

    .section-text-right-acc-panel a,
    .filmar-permit-download {
        font-size: 14px !important;
        line-height: 135%;
    }

    .section-text-right-acc-item.open .filmar-permit-row {
        padding-bottom: 50px;
    }

    /* Décors Gallery - Section padding + grid */
    .decors-section {
        padding-top: 90px;
    }

    .decors-grid {
        gap: 5px;
    }

    .decors-grid .decors-card {
        width: calc(50% - 2.5px);
        height: 110px;
    }

    /* Décors Gallery - Lightbox (mobile) */
    .lightbox-backdrop {
        background: rgba(30, 30, 30, 0.95);
        align-items: center;
        justify-content: center;
    }

    .lightbox-content {
        flex-direction: column;
        align-items: center;
        max-width: calc(100vw - 50px);
        max-height: none;
        padding-bottom: 120px;
    }

    .lightbox-image {
        width: calc(100vw - 50px);
        max-width: 100%;
        max-height: none;
        height: auto;
        aspect-ratio: 325 / 215;
        object-fit: cover;
        box-shadow: none;
    }

    .lightbox-caption {
        position: static;
        transform: none;
        left: auto;
        bottom: auto;
        width: 100%;
        max-width: 100%;
        font-size: 16px;
        line-height: 1.25;
        color: #d9d9d9;
        text-align: center;
        padding: 30px 0 0;
        background: none;
        border-radius: 0;
    }

    .lightbox-prev,
    .lightbox-next {
        bottom: 60px;
        top: auto;
        transform: none;
        font-size: 40px;
        width: auto;
        height: auto;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.8px;
    }

    .lightbox-prev {
        left: 25px;
    }

    .lightbox-next {
        right: 25px;
        left: auto;
    }

    .lightbox-close {
        top: 50px;
        right: 24px;
        left: auto;
        font-size: 40px;
        width: auto;
        height: auto;
        font-weight: 400;
        line-height: 1.3;
    }

    /* Filmar No Porto - Map */

    .filmar-map-block {
        margin-bottom: 1.5rem !important;
    }

    .filmar-map-block h2.filmaporto-block-subtitle {
        margin-bottom: 15px !important;
    }

    .filmar-map-section p {
        font-size: 16px;
        line-height: 135%;
    }

    /* Responsive Design Section - Navigation Grid & Typography */
    .navigationSection {
        padding: 2rem 0 1rem;
    }

    .navigationGrid {
        gap: 14px;
    }

    /* Taller aspect ratio for cards on mobile (≈327×150) */
    .navigationGrid .frame {
        aspect-ratio: 327 / 150;
    }

    /* Adjust navigation grid card title size on mobile */
    .navigationGrid .rect .content {
        font-size: 1.375rem;
        line-height: 100%;
    }

    .portalText {
        font-size: 16px;
    }

    .section-title {
        font-size: 1.5rem;
    }

    .section-description {
        font-size: 1.125rem;
        line-height: 140%;
    }

    /* Décors Page - Grid */
    .decors-grid .decors-card {
        width: 100%;
        height: 222px;
    }

    .filmar-map {
        margin-top: 0.5rem;
    }

    /* Bolsas Page */

    .bolsas-page .filmaporto-block-title {
        letter-spacing: -0.8px;
        line-height: 1.1;
    }

    /* Bolsas: 50px top/bottom on download sections (corrected selector from bolsas-items) */
    .bolsas-items {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    .bolsas-years-section {
        padding: 50px 0 50px 0;
    }

    .bolsas-years-title.filmaporto-block-subtitle {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 20px !important;
        letter-spacing: -0.52px !important;
    }

    .bolsas-support-section h2.filmaporto-block-subtitle {
        font-size: 2.5rem !important;
        letter-spacing: -0.8px !important;
    }

    .bolsas-year {
        flex-wrap: nowrap;
        gap: 60px;
        padding-top: 5px;
        padding-bottom: 10px;
    }

    .bolsas-year-label {
        flex: 0 0 auto;
        width: auto;
        font-size: 20px;
        letter-spacing: -0.4px;
        line-height: 1.25;
    }

    .bolsas-year-content {
        flex: 1 0 0;
        width: auto;
        padding-top: 0;
        padding-bottom: 40px;
    }

    h3.bolsas-jury-title {
        font-size: 16px;
        letter-spacing: normal !important;
    }

    .bolsas-jury {
        font-size: 14px;
        line-height: 135%;
        letter-spacing: normal !important;
    }

    h3.bolsas-winners-title {
        font-size: 16px;
        letter-spacing: normal !important;
        margin-top: 20px;
    }

    .bolsas-winners p,
    .bolsas-jury p {
        font-size: 14px;
        letter-spacing: normal !important;
    }

    .bolsas-winners p {
        margin-bottom: 5px;
    }

    .bolsas-years-load-more {
        font-size: 16px;
        letter-spacing: -0.32px;
        line-height: 2.5;
    }

    .load-more-btn-container {
        min-height: auto;
    }

    .bolsas-items .arrow-list li {
        font-size: 16px;
    }

    .bolsas-support-section-content {
        width: 100%;
    }

    .bolsas-support-section-content p {
        font-size: 22px;
    }

    .bolsas-support-section {
        padding-top: 50px;
        padding-bottom: 20px;
    }

    /* CF7 Form Styles */
    .form-container {
        width: 100%;
        padding:0;
    }

    /* Sessões Page */
    .sessoes-page .filmaporto-block-title {
        letter-spacing: -0.8px;
        line-height: 1.1;
    }

    .sessoes-grid {
        grid-template-columns: 1fr;
    }

    .sessoes-page .sessoes-card {
        border-color: #1e1e1e;
        padding: 25px;
        gap: 15px;
        min-height: 0;
    }

    .sessoes-page h3.sessoes-card-title {
        letter-spacing: -0.48px;
    }

    .sessoes-page .sessoes-card-title {
        font-size: 24px;
        line-height: 36px;
        font-weight: 600;
        letter-spacing: -0.48px;
    }

    .sessoes-page .sessoes-card-text ul li {
        font-size: 17px;
        line-height: 1.3;
        letter-spacing: -0.34px;
    }

    .sessoes-page .sessoes-card-text p {
        font-size: 17px;
        line-height: 1.3;
        letter-spacing: -0.34px;
        margin-bottom: 5px;
    }

    .sessoes-page .sessoes-date {
        font-size: 14px;
        line-height: 18px;
        letter-spacing: normal;
        text-transform: uppercase;
    }

    .sessoes-links li,
    .sessoes-links a {
        font-size: 16px;
    }

    .sessoes-page .sessoes-history-load-more {
        font-size: 16px;
        letter-spacing: -0.32px;
        line-height: 2.5;
        text-decoration: underline;
    }

    .sessoes-page .load-more-btn-container {
        height: auto;
        min-height: auto;
    }

    .sessoes-opencall-section > .container-fluid {
        grid-template-columns: 1fr;
    }

    .sessoes-opencall-section .sessoes-links {
        justify-self: start;
        margin-right: 0;
        padding-left: 12px;
    }

    /* Notícias Page */
    .noticias-grid {
        grid-template-columns: 1fr;
        row-gap: 50px;
    }

    h1.noticias-title {
        font-size: 40px;
        letter-spacing: -0.8px;
        line-height: 1.0;
    }

    .noticias-header-section {
        padding: 24px 0 32px 0 !important;
    }

    .noticia-title a {
        font-size: 24px;
        line-height: 1.3;
        letter-spacing: -0.48px;
    }

    .noticia-date {
        font-size: 14px;
        letter-spacing: -0.28px;
        line-height: 1.05;
    }

    .noticia-tags > .pill {
        font-size: 12px;
        letter-spacing: -0.24px;
    }

    .noticia-image {
        height: 235px;
    }

    .noticias-page .noticias-load-more {
        font-size: 16px;
        letter-spacing: -0.32px;
        line-height: 2.5;
        text-transform: none;
        text-decoration: underline;
    }

    .noticia-title-single {
        font-size: 28px !important;
        line-height: 115% !important;
    }

    .noticia-body p {
        font-size: 18px !important;
        letter-spacing: normal !important;
        line-height: 135% !important;
    }

    .noticia-related-title {
        font-size: 28px !important;
    }

    .wpcf7 form input[type="text"],
    .wpcf7 form input[type="email"],
    .wpcf7 form input[type="tel"],
    .wpcf7 form input[type="url"],
    .wpcf7 form textarea,
    .wpcf7 form select {
        width: 100%;
        background: transparent;
        color: #1e1e1e !important;
        padding: 10px 0 10px 0;
        border-radius: 0;
        font-family: var(--font-ibm-mono);
        font-feature-settings: var(--font-ibm-features);
        font-size: 1rem;
        line-height: 1rem;
        border: none !important;
        border-bottom: 1px solid #1e1e1e !important;
    }

    .wpcf7 form .wpcf7-list-item-label {
            padding: 6px 12px 6px 12px;
    }

    .wpcf7 form input[type="submit"],
    .wpcf7 form button[type="submit"] {
        appearance: none;
        border: 1px solid #1e1e1e;
        background: #1e1e1e;
        color: #c8c8c8;
        padding-top: 10px;
        padding-right: 16px;
        padding-bottom: 10px;
        padding-left: 16px;
        font-family: var(--font-ibm-mono);
        font-feature-settings: var(--font-ibm-features);
        font-size: 1.1rem;
    }

    .form-bordered-box {
        padding: 1em 2em 1em 2em;
    }

    .wpcf7 form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item, 
    .wpcf7 form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
        display: block;
        margin-right: 0;
    }

    

    .form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item label {
        display:grid;
        margin-bottom: 2px;
        text-align:center;
    }

    .codedropz-upload-inner h3,
    .codedropz-upload-inner span {
        display: none;
    }

    /* Sobre a Filmaporto Page */
    body .sobre-a-filmaporto-page .filmaporto-block-title {
        letter-spacing: -0.8px;
        line-height: 1.0;
        margin-bottom: 30px;
    }

    .sobre-activity-section {
        padding: 50px 0 50px 0;
    }

    .sobre-activity-section h2.filmaporto-block-subtitle {
        line-height: 1.15;
    }

    .sobre-stat {
        min-height: 200px;
    }

    .sobre-stat .stat-number {
        font-size: 28px;
        letter-spacing: -0.56px;
        line-height: 1.0;
    }

    .sobre-stat .stat-label,
    .sobre-stat .stat-label p {
        font-size: 20px !important;
        letter-spacing: -0.4px;
        line-height: 1.25;
    }

    .sobre-activity-section .sobre-bottom-text,
    .sobre-activity-section .sobre-bottom-text p {
        font-size: 16px;
        line-height: 1.3;
    }

    .sobre-team-section {
        padding-top: 50px !important;
        padding-bottom: 50px;
    }

    .sobre-team-section h2.filmaporto-block-subtitle {
        font-size: 28px !important;
        letter-spacing: -0.56px;
    }

    .sobre-team-section p {
        margin-bottom: 25px;
    }

    .sobre-team-section .col-md-6 + .col-md-6 {
        margin-top: 20px;
    }

    .sobre-team-section .role {
        font-size: 16px !important;
        letter-spacing: -0.32px !important;
    }

    .sobre-activity-section .sobre-history-load-more,
    .sobre-activity-section .sobre-history-load-less,
    .sobre-activity-section .sobre2024-load-more {
        font-size: 16px;
        letter-spacing: -0.32px;
        line-height: 2.5;
    }

    .load-more-btn-container a {
        font-family: var(--font-ibm-mono, monospace);
        font-feature-settings: var(--font-ibm-features);
        color: #1e1e1e;
        padding-bottom: 2px;
        text-transform: uppercase;
        font-size: 16px;
        text-underline-offset: 4px;
    }

    .decors-filters-close {
        background-image: url("../images/icon-menu-close.svg") !important;
        background-repeat: no-repeat !important;
        background-position: center !important;
        background-size: 33px 33px !important;
        border: 0;
        width: 33px;
        height: 33px;
        font-size: 0;
    }

    .sobre-activity-section .sobre-history-load-more img,
    .sobre-activity-section .sobre-history-load-less img,
    .sobre-activity-section .sobre2024-load-more img {
        width: 24px;
        height: 24px;
        margin-left: 10px;
    }

    /* Back to Top Button */
    .back-to-top {
        display: none;
    }

    a.cd-upload-btn {
        font-size: 0.75rem !important;
    }

    .sessoes-history-section h2.filmaporto-block-subtitle {
        margin-bottom:1.5em !important;
    }

    .wpcf7 form .innerformheading h2.tab-counter {
        margin-bottom:10px;
        margin-top:0;
    }

    /* Profissionais page */
    .prof-header {
        flex-wrap: wrap;
        gap: 12px;
        margin-bottom: 40px;
    }
    .prof-title {
        font-size: 32px;
    }
    .prof-back-link {
        font-size: 16px;
    }
    .prof-card {
        width: 100%;
        padding: 24px;
    }
    .prof-field-row {
        flex-direction: column;
        gap: 15px;
    }
    .prof-form-footer {
        width: 100%;
    }

    /* Directory registration forms (profissionais + empresa) */
    .profissionais-page .title-link-right-block h2.filmaporto-block-subtitle,
    .inscreve-a-tua-empresa-page .title-link-right-block h2.filmaporto-block-subtitle {
        font-size: 26px;
        line-height: 1.15;
    }

    .profissionais-page a.title-link-right,
    .inscreve-a-tua-empresa-page a.title-link-right {
        font-size: 12px;
        letter-spacing: -0.24px;
    }

    .profissionais-page .form-bordered-box,
    .inscreve-a-tua-empresa-page .form-bordered-box {
        padding: 30px;
    }

    .profissionais-page .wpcf7 form h2,
    .inscreve-a-tua-empresa-page .wpcf7 form h2 {
        font-size: 20px;
        line-height: 1.0;
        margin-top: 0;
        margin-bottom: 28px;
    }

    .profissionais-page .wpcf7 form .innerformheading h3,
    .inscreve-a-tua-empresa-page .wpcf7 form .innerformheading h3 {
        font-size: 16px;
        line-height: 1.4;
        margin-top: 20px;
    }

    .profissionais-page .wpcf7 form input[type="text"],
    .profissionais-page .wpcf7 form input[type="email"],
    .profissionais-page .wpcf7 form input[type="tel"],
    .profissionais-page .wpcf7 form input[type="url"],
    .inscreve-a-tua-empresa-page .wpcf7 form input[type="text"],
    .inscreve-a-tua-empresa-page .wpcf7 form input[type="email"],
    .inscreve-a-tua-empresa-page .wpcf7 form input[type="tel"],
    .inscreve-a-tua-empresa-page .wpcf7 form input[type="url"] {
        font-size: 14px;
        padding: 10px 0;
    }

    .profissionais-page .wpcf7 form input[type="submit"],
    .profissionais-page .wpcf7 form button[type="submit"],
    .inscreve-a-tua-empresa-page .wpcf7 form input[type="submit"],
    .inscreve-a-tua-empresa-page .wpcf7 form button[type="submit"] {
        font-size: 14px;
        padding: 12px;
        background: #2c2c2c;
        border-color: #2c2c2c;
    }

    .profissionais-page .wpcf7 form .wpcf7-list-item-label,
    .inscreve-a-tua-empresa-page .wpcf7 form .wpcf7-list-item-label {
        font-size: 12px;
        padding: 6px 8px;
    }

    .profissionais-page .wpcf7 form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item,
    .inscreve-a-tua-empresa-page .wpcf7 form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item {
        display: inline-block;
        max-width: 100%;
        margin: 4px 8px 4px 0 !important;
    }

    .profissionais-page .form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item label,
    .inscreve-a-tua-empresa-page .form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item label {
        display: inline-flex;
        margin-bottom: 0;
        text-align: left;
        max-width: 100%;
        overflow: hidden;
    }

    .profissionais-page .form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item-label,
    .inscreve-a-tua-empresa-page .form-bordered-box .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item-label {
        text-align: left;
        max-width: 220px;
        word-break: break-word;
    }

    .profissionais-page .form-bordered-box:has(.wpcf7-checkbox),
    .inscreve-a-tua-empresa-page .form-bordered-box:has(.wpcf7-checkbox) {
        padding: 20px;
    }

    .profissionais-page .form-bordered-box:has(.wpcf7-checkbox) .row,
    .inscreve-a-tua-empresa-page .form-bordered-box:has(.wpcf7-checkbox) .row {
        margin-top: 0 !important;
    }

    .profissionais-page .form-bordered-box:has(.wpcf7-checkbox) .innerformheading,
    .inscreve-a-tua-empresa-page .form-bordered-box:has(.wpcf7-checkbox) .innerformheading {
        margin-top: 0;
    }

    /* Show scrollable tabs, hide dropdown */
    .profissionais-page .form-bordered-box .fp-tabs-dropdown,
    .inscreve-a-tua-empresa-page .form-bordered-box .fp-tabs-dropdown {
        display: none;
    }

    .profissionais-page .form-bordered-box .fp-tabs-nav,
    .inscreve-a-tua-empresa-page .form-bordered-box .fp-tabs-nav {
        display: flex;
        overflow-x: auto;
        scrollbar-width: none;
        gap: 15px;
        border-bottom: 0.4px solid #1e1e1e;
        align-items: flex-end;
        height: 38px;
        padding-bottom: 0;
        margin: 0 0 16px 0;
    }

    .profissionais-page .form-bordered-box .fp-tabs-nav::-webkit-scrollbar,
    .inscreve-a-tua-empresa-page .form-bordered-box .fp-tabs-nav::-webkit-scrollbar {
        display: none;
    }

    .profissionais-page .form-bordered-box .fp-tab-button,
    .inscreve-a-tua-empresa-page .form-bordered-box .fp-tab-button {
        font-size: 13px;
        height: 40px;
        padding: 0;
        white-space: nowrap;
        flex-shrink: 0;
        border-bottom: 1.4px solid transparent;
        margin-bottom: -1px;
    }

    .profissionais-page .form-bordered-box .fp-tab-button[aria-selected="true"],
    .inscreve-a-tua-empresa-page .form-bordered-box .fp-tab-button[aria-selected="true"] {
        border-bottom-color: #1e1e1e;
        text-decoration: none;
    }

    .profissionais-page .wpcf7 form .privacypolicycheckbox .wpcf7-list-item-label,
    .inscreve-a-tua-empresa-page .wpcf7 form .privacypolicycheckbox .wpcf7-list-item-label {
        font-size: 12px;
        padding: 0;
    }

    .profissionais-page .wpcf7 form .privacypolicycheckbox input[type="checkbox"],
    .inscreve-a-tua-empresa-page .wpcf7 form .privacypolicycheckbox input[type="checkbox"] {
        width: 12px;
        height: 12px;
    }

    /* Localização form (inscreve-o-teu-decor-page) */
    .inscreve-o-teu-decor-page .title-link-right-block h2.filmaporto-block-subtitle {
        font-size: 26px;
        line-height: 1.15;
    }
    .inscreve-o-teu-decor-page a.title-link-right {
        font-size: 12px;
        letter-spacing: -0.24px;
    }
    .inscreve-o-teu-decor-page .form-bordered-box {
        padding: 30px;
    }
    .inscreve-o-teu-decor-page .wpcf7 form h2 {
        font-size: 20px;
        line-height: 1.0;
        margin-bottom: 20px;
    }
    .inscreve-o-teu-decor-page .wpcf7 form input[type="text"],
    .inscreve-o-teu-decor-page .wpcf7 form input[type="email"],
    .inscreve-o-teu-decor-page .wpcf7 form input[type="tel"],
    .inscreve-o-teu-decor-page .wpcf7 form input[type="url"] {
        font-size: 14px;
        padding: 10px 0;
    }
    .inscreve-o-teu-decor-page a.cd-upload-btn {
        font-size: 14px !important;
        padding: 8px 20px;
        border: 1px solid #1e1e1e;
    }
    .inscreve-o-teu-decor-page .wpcf7 form input[type="submit"],
    .inscreve-o-teu-decor-page .wpcf7 form button[type="submit"] {
        font-size: 14px;
        padding: 12px;
        background: #2c2c2c;
        border-color: #2c2c2c;
    }
    .inscreve-o-teu-decor-page .wpcf7 form .privacypolicycheckbox .wpcf7-list-item-label {
        font-size: 12px;
        padding: 0;
        line-height: 1.35;
    }

}

body.error404  a.back-button {
    font-family: var(--font-ibm-mono) !important;
    font-feature-settings: var(--font-ibm-features) !important;
}

body.error404  h2.filmaporto-block-title {
    font-size: 3rem !important;
    margin-bottom: 20px !important;
}



/* ===== Directory System ===== */

body.page-template-page-directory,
body.page-template-page-directory-profissionais,
body.page-template-page-directory-empresas,
body.page-template-page-directory-localizacoes {
    background: var(--color-background) !important;
}

.dir-page { background: var(--color-background); }

.dir-container {
    padding: 80px 48px 100px;
}

.dir-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 80px;
    /* A wide gutter so the title is forced to break well before it reaches the
       back-link, rather than the two meeting in the middle. */
    gap: 80px;
}

/* Every page's first rule lines up with the Diretório landing's (Figma
   1744:740): one 80px title→content gap, no per-page variation. */

/* A long title ("Cinematografia/Iluminação/Maquinaria") has to break well
   before it reaches the back-link, so the two never crowd each other. It wraps
   at the slashes — see filmaporto_dir_label_html(). */
.dir-title {
    font-family: var(--font-extended);
    /* 58px at 1440 and down from there: a long title ("Diretor de fotografia/
       cinematografia") has segments too long to fit a narrowed column at full
       size, and would otherwise be broken mid-word. */
    font-size: clamp(40px, 4vw, 58px);
    font-weight: 500;
    letter-spacing: -1.16px;
    line-height: 1.05;
    color: var(--color-primary);
    margin: 0;
    /* Takes whatever the back-link leaves. The back-link is sized to its own
       content first, so a title that has to wrap does so without pushing the
       link into a second row. */
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: break-word;
}

.dir-back-link {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    letter-spacing: -0.44px;
    line-height: 1.35;
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    text-transform: uppercase;
    background: none !important;
    transition: none !important;
    /* Right-aligned so a label that wraps stacks against the page edge instead
       of forming a second, ragged row of button. */
    text-align: right;
    /* Never squeezed by a wrapping title: it keeps its own width and the title
       scales down around it (see the clamp on .dir-title). It only wraps — at
       its own slashes — when the label is long enough to hit the max-width. */
    flex: 0 0 auto;
    max-width: 45%;
}

.dir-back-link:hover,
.dir-back-link:focus {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    color: var(--color-primary);
    background: none !important;
}

/* Chevron + short label are mobile-only (Figma 1757:805); desktop shows the
   full label and the ↓/↗ arrow below. */
.dir-back-prefix,
.dir-back-label-short {
    display: none;
}
.dir-back-link .dir-link-tail::after {
    content: "↓";
    display: inline-block;
    margin-left: 0.5em;
    transform: rotate(-135deg);
    font-size: 1.3em;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    text-decoration: none;
}

/* Role section grouping */

.dir-role-section + .dir-role-section {
    margin-top: 60px;
}

.dir-role-header {
    padding-bottom: 20px;
}

/* The first role heading must not add to the header gap — the rule under it is
   what has to line up with the landing's first rule. */
.dir-role-section:first-of-type .dir-role-header {
    padding-top: 0;
    margin-top: 0;
}

.dir-role-title {
    font-family: var(--font-extended);
    font-size: 42px;
    font-weight: 500;
    letter-spacing: -0.84px;
    line-height: 1;
    color: var(--color-primary);
    margin: 0;
}

/* Section / category rows */

.dir-section,
.dir-category-row {
    display: flex;
    align-items: flex-start;
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}

/* Items carry a top line only — no closing line at the end of a list. */

.dir-section-label,
.dir-cat-label {
    font-family: var(--font-extended);
    font-size: 32px;
    font-weight: 500;
    line-height: 2.5;
    letter-spacing: -0.64px;
    color: var(--color-primary);
    width: 50%;
    min-width: 0;
    flex: 0 0 50%;
    padding-right: 40px;
    /* "Cinematografia/Iluminação/Maquinaria" is one long word: without this it
       overflowed its 50% column and ran under the sub-links. `break-word` (not
       `anywhere`) so it wraps after a slash and only splits a word when a
       single segment cannot fit. */
    overflow-wrap: break-word;
    /* Underlined like the sub-links so it reads as clickable, not as a heading. */
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    background: none !important;
    transition: none !important;
}

.dir-section-links,
.dir-cat-roles {
    flex: 1;
    padding: 20px 0 40px;
}

.dir-section-link,
.dir-cat-role {
    display: block;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: -0.48px;
    margin-bottom: 5px;
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    background: none !important;
    transition: none !important;
}

.dir-cat-count {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 20px;
    color: rgba(30, 30, 30, 0.6);
    line-height: 1.4;
}

/* Accordion listing */

.dir-listing {
    margin-top: 0;
}

.dir-entry {
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}



.dir-entry-row {
    display: flex;
    align-items: flex-start;
    cursor: pointer;
    padding: 20px 0;
    width: 100%;
    outline: none;
}

.dir-entry-row:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.dir-entry-name {
    font-family: var(--font-family, 'Inter');
    font-size: 32px;
    font-weight: 400;
    letter-spacing: -0.64px;
    line-height: 1.35;
    color: var(--color-primary);
    flex-shrink: 0;
}

.dir-entry.is-open .dir-entry-name {
    width: 686px;
}

.dir-entry.is-open .dir-entry-row {
    padding-bottom: 80px;
}

.dir-entry-toggle {
    font-family: var(--font-extended);
    font-size: 32px;
    font-weight: 400;
    color: var(--color-primary);
    text-align: right;
    flex: 1;
    line-height: 1.35;
}

.dir-entry-toggle::before { content: '+'; }
.dir-entry.is-open .dir-entry-toggle::before { content: '−'; }

/* Expanded detail panel (inline in row) */

.dir-entry-detail {
    flex-shrink: 0;
    width: 545px;
}

/* Detail text content */

.dir-detail-para {
    font-family: var(--font-family, 'Inter');
    font-size: 22px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -0.22px;
    color: var(--color-primary);
    margin: 0 0 0 0;
}

.dir-detail-para + .dir-detail-para {
    margin-top: 0;
}

.dir-detail-para strong {
    font-weight: 600;
}

.dir-detail-para a {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -0.22px;
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    background: none !important;
    transition: none !important;
}

/* Tel., Morada, Proprietário: not links, but the same face as the links beside
   them so the block reads as one column. */
.dir-detail-value {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -0.22px;
    color: var(--color-primary);
}

/* An address wraps under itself, not under the label: the label is one column,
   the value another, so the postal code lines up with the street above it. */
.dir-detail-addr {
    display: flex;
    gap: 0.4em;
    align-items: baseline;
}

.dir-detail-addr strong {
    flex: none;
}

/* Blank line between the produções list and the contact block, matching the
   empty paragraph in Figma 1744:1493. */
.dir-detail-prod-link + .dir-detail-para,
.dir-detail-prod-text + .dir-detail-para,
.dir-detail-prod-meta + .dir-detail-para {
    margin-top: calc(22px * 1.35);
}

/* External links carry a trailing arrow (Figma 1744:1773), drawn the way the
   back-link draws its own: a rotated ↓, which is lighter than ↗ at the same
   size. `inline-block` keeps the arrow — and the space before it — outside the
   underline. The arrow hangs off .dir-link-tail, whose nowrap binds it to the
   last word so it can never be left alone on the next line. */
.dir-link-tail {
    white-space: nowrap;
}

.dir-detail-para a .dir-link-tail::after,
.dir-detail-prod-link .dir-link-tail::after {
    content: '↓';
    display: inline-block;
    margin-left: 0.5em;
    transform: rotate(-135deg);
    font-size: 1.3em;
    font-weight: 400;
    text-decoration: none;
}

.dir-detail-prod-link,
.dir-detail-prod-text {
    display: block;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -0.22px;
    color: var(--color-primary);
}

/* `a:hover` in the base stylesheet (0,1,1) outranked the bare class and was
   dropping the underline on hover here, while the panel's other links kept
   theirs. Both are pinned so the two behave alike. */
.dir-detail-prod-link,
.dir-detail-prod-link:hover,
.dir-detail-prod-link:focus {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    color: var(--color-primary);
    background: none !important;
    transition: none !important;
}

.dir-detail-para a:hover,
.dir-detail-para a:focus {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    color: var(--color-primary);
    background: none !important;
}

.dir-detail-prod-meta {
    display: block;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 18px;
    line-height: 1.35;
    color: rgba(30, 30, 30, 0.6);
    margin-bottom: 14px;
}

/* A production with no cargo/entidade line still needs the gap. */
.dir-detail-prod-link + .dir-detail-prod-link,
.dir-detail-prod-link + .dir-detail-prod-text,
.dir-detail-prod-text + .dir-detail-prod-link,
.dir-detail-prod-text + .dir-detail-prod-text {
    margin-top: 14px;
}

/* Chips */

/* One blank text line above every chips group, as in Figma 1744:1489. */
.dir-chips-group,
.dir-chips-group + .dir-chips-group {
    margin-top: calc(22px * 1.35);
}

.dir-chips-label {
    display: block;
    font-family: var(--font-family, 'Inter');
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.22px;
    line-height: 1.35;
    color: var(--color-primary);
    margin-bottom: 10px;
}

.dir-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 8px;
}

.dir-chip {
    display: inline-block;
    border: 1.469px solid var(--color-primary);
    padding: 3.918px 7.837px;
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -0.16px;
    color: var(--color-primary);
    line-height: 1.225;
}

/* Location entries: left col = name + photo stacked */

.dir-entry--location .dir-loc-left {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.dir-entry--location.is-open .dir-loc-left {
    width: 686px;
}

/* Override: for location entries, name width comes from parent col */
.dir-entry--location.is-open .dir-entry-name {
    width: auto;
}

/* Compound selector so this beats `.dir-detail-para + .dir-detail-para`
   (0,2,0), which was zeroing it out everywhere it was used. */
.dir-detail-para.dir-detail-mt {
    margin-top: calc(22px * 1.35);
}

.dir-loc-photo {
    width: 549px;
    height: 376px;
    object-fit: cover;
    display: block;
}

.dir-loc-photo-placeholder {
    width: 549px;
    height: 376px;
    background: rgba(30, 30, 30, 0.15);
    display: block;
}

/* Empty state */

.dir-empty {
    font-family: var(--font-ibm-mono, monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 18px;
    color: rgba(30, 30, 30, 0.6);
    padding: 48px 0;
    border-top: 1.4px solid rgba(30, 30, 30, 0.5);
}

.dir-empty-cta {
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    background: none !important;
    transition: none !important;
}

/* Directory responsive */

/* Mobile directory — Figma 375px frames: 1757:116 (landing),
   1757:433/623 (category index), 1757:805 (listing collapsed),
   1757:1225 (listing expanded), 1757:1736 (localizações).
   Frame padding 24px → 327px content column. */

@media (max-width: 768px) {
    /* Vertical only: the 24px side inset comes from the global body padding,
       and Bootstrap's .px-0 on this element blocks horizontal padding anyway. */
    .dir-container {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    /* Header — back-link sits ABOVE the title on mobile (DOM order is
       title → link, so column-reverse flips it without touching markup). */
    .dir-header,
    .dir-header:has(+ .dir-sections) {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: 30px;
        margin-bottom: 50px;
    }
    .dir-title {
        font-size: 40px;
        letter-spacing: -0.8px;
        line-height: 1.1;
        /* The column header aligns to flex-start, which sizes children to their
           content — "Cinematografia/Iluminação/Maquinaria" then ran 10px past
           the 375px viewport instead of wrapping. */
        width: 100%;
        max-width: 100%;
    }
    /* "< PROFISSIONAIS" — underline on the label only, so the underline is
       moved off the <a> and onto the short label span. */
    .dir-back-link {
        font-size: 12px;
        letter-spacing: -0.24px;
        line-height: 1.2;
        text-decoration: none;
    }
    .dir-back-link::after {
        content: none;
    }
    .dir-back-label {
        display: none;
    }
    .dir-back-prefix {
        display: inline;
        margin-right: 0.35em;
    }
    .dir-back-label-short {
        display: inline;
        text-decoration: underline;
        text-decoration-thickness: 1px;
        text-underline-offset: 2px;
    }

    /* Landing sections / category index — stack label over links */
    .dir-sections {
        display: flex;
        flex-direction: column;
        gap: 70px;
        padding-bottom: 40px;
    }
    .dir-sections .dir-section:last-child {
        border-bottom: none;
    }
    .dir-section,
    .dir-category-row {
        flex-direction: column;
    }
    .dir-section-label,
    .dir-cat-label {
        width: 100%;
        min-width: 0;
        /* The desktop rule sizes these as a 50% flex column; stacked, the basis
           would apply to the height instead. */
        flex: none;
        padding-right: 0;
        font-size: 26px;
        line-height: 2.5;
        letter-spacing: -0.52px;
    }
    .dir-section-links,
    .dir-cat-roles {
        padding: 15px 0 0;
    }
    .dir-section-link,
    .dir-cat-role {
        font-size: 18px;
        line-height: 1.4;
        letter-spacing: -0.36px;
        margin-bottom: 5px;
    }
    /* Long slash-joined labels ("Cinematografia/Iluminação/Maquinaria") are a
       single unbreakable word and blew the 327px column out to 383px. Figma
       sets word-break:break-word on these blocks. */
    .dir-section,
    .dir-category-row,
    .dir-section-links,
    .dir-cat-roles {
        min-width: 0;
        max-width: 100%;
    }
    .dir-section-link,
    .dir-cat-role,
    .dir-section-label,
    .dir-cat-label,
    .dir-entry-name,
    .dir-role-title {
        overflow-wrap: anywhere;
    }

    /* Role headings */
    .dir-role-title {
        font-size: 30px;
        letter-spacing: -0.6px;
        line-height: 1;
    }

    /* Entry rows — row height comes from the 2.5 line-height, not padding */
    .dir-listing .dir-entry:last-child {
        border-bottom: none;
    }
    .dir-entry-row {
        flex-wrap: wrap;
        padding: 0;
    }
    .dir-entry-name {
        font-size: 18px;
        font-weight: 500;
        letter-spacing: -0.36px;
        line-height: 2.5;
        flex: 1;
    }
    .dir-entry.is-open .dir-entry-name {
        width: auto;
        flex: 1;
    }
    .dir-entry-toggle {
        font-size: 18px;
        line-height: 2.5;
        flex: 0 0 auto;
    }
    .dir-entry-detail {
        width: 100%;
        order: 3;
        flex-basis: 100%;
        margin-top: 10px;
    }
    .dir-entry.is-open .dir-entry-row {
        padding-bottom: 50px;
    }

    /* Expanded detail */
    .dir-detail-para,
    .dir-detail-para a,
    .dir-detail-prod-link,
    .dir-detail-prod-text {
        font-size: 15px;
        letter-spacing: -0.15px;
        line-height: 1.35;
    }
    .dir-detail-prod-meta {
        font-size: 13px;
    }
    .dir-detail-para.dir-detail-mt,
    .dir-detail-prod-link + .dir-detail-para,
    .dir-detail-prod-text + .dir-detail-para,
    .dir-detail-prod-meta + .dir-detail-para {
        margin-top: calc(15px * 1.35);
    }
    .dir-chips-group,
    .dir-chips-group + .dir-chips-group {
        margin-top: 25px;
    }
    .dir-chips-label {
        font-size: 15px;
        letter-spacing: -0.15px;
        margin-bottom: 10px;
    }
    .dir-chips {
        gap: 6px;
    }
    .dir-chip {
        border-width: 1px;
        padding: 3px 6px;
        font-size: 12px;
        letter-spacing: -0.12px;
        line-height: 1.4;
    }

    /* Localizações */
    .dir-entry--location .dir-loc-left {
        order: 1;
        flex: 1;
    }
    .dir-entry--location.is-open .dir-loc-left {
        width: auto;
    }
    .dir-loc-photo,
    .dir-loc-photo-placeholder {
        width: 100%;
        height: 220px;
    }
}

/* ==========================================================================
   DÉCOR CATEGORY PAGE
   ========================================================================== */

.decor-category-page {
    padding: 0;
}

/* Header Section */
.decor-header {
    padding: 180px 48px 50px;
}

.decor-header-content {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 40px;
}

.decor-title-wrapper {
    flex: 0 0 auto;
}

.decor-title {
    font-family: var(--font-gt-flexa, 'GT Flexa', sans-serif);
    font-size: 64px;
    font-weight: 500;
    letter-spacing: -1.28px;
    line-height: 1;
    margin: 0;
    padding: 0;
    color: #1e1e1e;
}

.decor-cta {
    flex: 0 0 auto;
}

.decor-cta-link {
    font-family: var(--font-ibm-mono, 'IBM Plex Mono', monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    letter-spacing: -0.44px;
    line-height: 1.2;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-skip-ink: none;
    text-underline-offset: 3px;
    color: #1e1e1e;
    transition: opacity 0.2s ease;
}

.decor-cta-link span.arrow-icon-back {
    rotate: -45deg;
    display: inline-block;
    opacity: 0;
    font-family: var(--font-ibm-mono, 'IBM Plex Mono', monospace);
    font-feature-settings: var(--font-ibm-features);
    vertical-align: baseline;
    font-weight: 400;
    transition: opacity 0.2s ease;
}

.decor-cta-link:hover span.arrow-icon-back {
    opacity: 1;
}

.decor-cta-link:hover {
    text-decoration: underline;
}

/* Filter Menu */
.decor-menu {
    padding: 20px 48px 50px;
}

.decor-menu-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
}

.decor-menu-items {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.decor-menu-item {
    display: inline-flex;
    align-items: center;
    height: auto;
}

.decor-menu-link {
    font-family: var(--font-ibm-mono, 'IBM Plex Mono', monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 24.28px;
    padding: 6.475px 12.95px;
    border: 1.4px solid #1e1e1e;
    border-radius: 0;
    background: transparent;
    color: #1e1e1e;
    text-decoration: none;
    display: inline-block;
    white-space: nowrap;
    transition: all 0.2s ease;
}

.decor-menu-link:hover {
    background: #1e1e1e;
    color: #c8c8c8;
}

.decor-menu-item.active .decor-menu-link {
    background: #1e1e1e;
    color: #c8c8c8;
}

/* Grid Section */
.decor-grid-section {
    padding: 0 48px;
}

.decor-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    width: 100%;
}

.decor-card {
    position: relative;
    width: 100%;
    padding-bottom: 100%;
    overflow: hidden;
}

.decor-card-link {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
}

.decor-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Footer Section */
.decor-footer {
    padding: 80px 48px;
}

.decor-footer-content {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 124px;
}

.decor-load-more {
    font-family: var(--font-ibm-mono, 'IBM Plex Mono', monospace);
    font-feature-settings: var(--font-ibm-features);
    font-size: 22px;
    letter-spacing: -0.44px;
    line-height: 1.2;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-skip-ink: none;
    text-underline-offset: 3px;
    color: #1e1e1e;
    transition: opacity 0.2s ease;
    text-transform: uppercase;
}

.decor-load-more:hover {
    opacity: 0.7;
    text-decoration: underline;
}

/* Tablet Breakpoint */
@media (max-width: 992px) {
    .decor-header {
        padding: 120px 32px 40px;
    }

    .decor-header-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 30px;
    }

    .decor-title {
        font-size: 48px;
        letter-spacing: -0.96px;
    }

    .decor-menu,
    .decor-grid-section,
    .decor-footer {
        padding-left: 32px;
        padding-right: 32px;
    }

    .decor-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
}

/* Mobile Breakpoint */
@media (max-width: 576px) {
    .decor-header {
        padding: 60px 16px 30px;
    }

    .decor-header-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .decor-title {
        font-size: 32px;
        letter-spacing: -0.64px;
    }

    .decor-cta-link {
        font-size: 16px;
        letter-spacing: -0.32px;
    }

    .decor-menu {
        padding: 15px 16px 30px;
    }

    .decor-menu-items {
        gap: 10px;
    }

    .decor-menu-link {
        font-size: 14px;
        padding: 5px 10px;
        border-width: 1px;
    }

    .decor-grid-section {
        padding: 0 16px;
    }

    .decor-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .decor-footer {
        padding: 40px 16px;
    }

    .decor-load-more {
        font-size: 16px;
        letter-spacing: -0.32px;
    }
}
