/*
Theme Name: Folklore Festival Inc Pro
Theme URI: https://folklorefestivalinc.com
Author: OpenAI
Description: Premium international Poland folklore festival theme. Montserrat headings, Open Sans body, dropdown navigation, editable slider and festival content.
Version: 6.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: folklorefestivalinc-pro
*/

:root{
  --ff-red:#d90429;
  --ff-navy:#052b46;
  --ff-blue:#0d5c8f;
  --ff-green:#087443;
  --ff-gold:#e6a82a;
  --ff-cream:#fffaf4;
  --ff-white:#ffffff;
  --ff-ink:#1c2835;
  --ff-muted:#667685;
  --ff-border:#e5ebef;
  --ff-shadow:0 18px 55px rgba(5,43,70,.12);
  --ff-radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ff-cream);color:var(--ff-ink);font-family:"Open Sans",Arial,sans-serif;font-size:15px;line-height:1.7}
h1,h2,h3,h4,h5,h6,.ff-nav a,.ff-button,.ff-eyebrow{font-family:"Montserrat",Arial,sans-serif}
h1,h2,h3,h4,h5,h6{color:var(--ff-navy);line-height:1.18;margin-top:0}
a{color:inherit}
img{max-width:100%;height:auto}
.ff-container{width:min(1220px,calc(100% - 42px));margin:auto}

/* utility + header */
.ff-utility{background:var(--ff-navy);color:#fff;font-size:12px}
.ff-utility-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:36px}
.ff-utility a{text-decoration:none;color:#fff}
.ff-header{background:#fff;position:sticky;top:0;z-index:1000;box-shadow:0 8px 28px rgba(5,43,70,.08)}
.ff-header-main{min-height:102px;display:grid;grid-template-columns:235px 1fr auto;align-items:center;gap:26px}
.ff-logo-link{display:block}
.ff-logo{display:block;width:220px;max-height:92px;object-fit:contain;object-position:left center}
.ff-nav-wrap{display:flex;justify-content:center}
.ff-nav{display:flex;align-items:center;justify-content:center;gap:19px;list-style:none;padding:0;margin:0}
.ff-nav>li{position:relative}
.ff-nav>li>a{display:block;text-decoration:none;color:var(--ff-navy);font-size:12px;font-weight:700;padding:39px 0;white-space:nowrap}
.ff-nav>li>a:hover,.ff-nav>.current-menu-item>a,.ff-nav>.current-menu-ancestor>a{color:var(--ff-red)}
.ff-nav .menu-item-has-children>a:after{content:" ▾";font-size:10px;color:var(--ff-red)}
.ff-nav .sub-menu{display:none;position:absolute;left:-18px;top:86px;min-width:235px;background:#fff;list-style:none;margin:0;padding:10px;border-radius:0 0 14px 14px;box-shadow:var(--ff-shadow);border-top:3px solid var(--ff-red)}
.ff-nav li:hover>.sub-menu{display:block}
.ff-nav .sub-menu li{position:relative}
.ff-nav .sub-menu a{display:block;padding:10px 12px;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;font-size:13px;font-weight:600;color:var(--ff-navy);border-radius:8px}
.ff-nav .sub-menu a:hover{background:#fff1f3;color:var(--ff-red)}
.ff-header-actions{display:flex;align-items:center;gap:10px}
.ff-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:0;cursor:pointer;border-radius:999px;padding:12px 21px;font-weight:700;font-size:12px}
.ff-button-red{background:var(--ff-red);color:#fff}
.ff-button-red:hover{background:#ad001e}
.ff-button-outline{border:2px solid #fff;color:#fff;background:transparent}
.ff-button-white{background:#fff;color:var(--ff-red)}
.ff-mobile-toggle{display:none;border:1px solid var(--ff-border);background:#fff;border-radius:10px;padding:10px 12px;color:var(--ff-navy);font-size:20px}

/* slider */
.ff-slider{min-height:660px;position:relative;overflow:hidden;background:var(--ff-navy)}
.ff-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .7s ease;display:flex;align-items:center}
.ff-slide.is-active{opacity:1;visibility:visible}
.ff-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,25,40,.92) 0%,rgba(3,25,40,.66) 44%,rgba(3,25,40,.12) 78%)}
.ff-slide-inner{position:relative;z-index:2;width:min(1220px,calc(100% - 48px));margin:auto}
.ff-slide-copy{max-width:650px;color:#fff;padding:70px 0}
.ff-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:800;color:var(--ff-red)}
.ff-slide .ff-eyebrow{color:#fff}
.ff-slide h1{font-size:clamp(46px,6.1vw,78px);line-height:1.02;color:#fff;margin:12px 0 16px;font-weight:800;letter-spacing:-1px}
.ff-slide p{font-size:18px;max-width:620px}
.ff-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.ff-meta{display:flex;gap:24px;flex-wrap:wrap;margin-top:30px;font-size:13px;font-weight:700}
.ff-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:rgba(3,25,40,.58);color:#fff;font-size:28px;cursor:pointer}
.ff-prev{left:18px}.ff-next{right:18px}
.ff-dots{position:absolute;z-index:5;left:50%;bottom:25px;transform:translateX(-50%);display:flex;gap:8px}
.ff-dot{width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:transparent;cursor:pointer}
.ff-dot.is-active{background:#fff}

/* icon nav */
.ff-quick{background:#fff;border-bottom:1px solid var(--ff-border)}
.ff-quick-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.ff-quick-item{text-align:center;padding:22px 10px;border-right:1px solid var(--ff-border)}
.ff-quick-item:last-child{border-right:0}
.ff-quick-icon{font-size:24px;color:var(--ff-red)}
.ff-quick-item strong{display:block;color:var(--ff-navy);font-family:"Montserrat";font-size:13px}
.ff-quick-item span{display:block;color:var(--ff-muted);font-size:10px}

/* sections */
.ff-section{padding:82px 0}
.ff-section-white{background:#fff}
.ff-section-dark{background:var(--ff-navy);color:#fff}
.ff-section-dark h2,.ff-section-dark h3,.ff-section-dark p{color:#fff}
.ff-section h2{font-size:clamp(30px,4vw,48px);margin:8px 0 18px;font-weight:800;letter-spacing:-.5px}
.ff-section h3{font-size:21px;margin:8px 0 10px}
.ff-lead{font-size:17px}
.ff-split{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center}
.ff-split-image{width:100%;height:470px;object-fit:cover;border-radius:var(--ff-radius);box-shadow:var(--ff-shadow)}
.ff-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:28px}
.ff-stat{background:#fff;border:1px solid var(--ff-border);border-radius:14px;padding:16px}
.ff-stat strong{display:block;font-family:"Montserrat";font-size:24px;color:var(--ff-red)}
.ff-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ff-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--ff-shadow);transition:.25s}
.ff-card:hover{transform:translateY(-5px)}
.ff-card img{width:100%;height:210px;object-fit:cover;display:block}
.ff-card-body{padding:17px}
.ff-card-label{font-size:10px;color:var(--ff-red);font-weight:800;letter-spacing:1px;text-transform:uppercase}
.ff-card p{color:var(--ff-muted);font-size:13px}
.ff-events{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ff-event{background:#fff;border:1px solid var(--ff-border);border-radius:15px;overflow:hidden}
.ff-event img{width:100%;height:175px;object-fit:cover;display:block}
.ff-event-body{padding:15px}
.ff-event-date{display:inline-block;background:var(--ff-red);color:#fff;border-radius:7px;padding:6px 9px;font-family:"Montserrat";font-size:11px;font-weight:800}
.ff-event h3{font-size:17px}
.ff-event-meta{font-size:11px;color:var(--ff-muted)}
.ff-country-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}
.ff-country{background:#fff;border:1px solid var(--ff-border);border-radius:12px;padding:15px;text-align:center}
.ff-country strong{display:block;margin-top:7px;font-size:12px;color:var(--ff-navy)}
.ff-country-flag{font-size:30px}
.ff-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ff-gallery-grid img{width:100%;height:190px;object-fit:cover;border-radius:12px}
.ff-visit{min-height:430px;background-size:cover;background-position:center;position:relative;display:grid;align-items:center}
.ff-visit:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,43,70,.9),rgba(5,43,70,.46))}
.ff-visit-inner{position:relative;z-index:2;color:#fff;max-width:720px}
.ff-visit h2,.ff-visit p{color:#fff}

/* page heroes */
.ff-page-hero{min-height:390px;background-size:cover;background-position:center;position:relative;display:grid;align-items:center}
.ff-page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,43,70,.9),rgba(5,43,70,.38))}
.ff-page-hero-inner{position:relative;z-index:2;color:#fff}
.ff-page-hero h1{font-size:clamp(36px,5vw,60px);color:#fff;margin:10px 0}
.ff-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:46px}
.ff-page-content{font-size:15px}
.ff-page-content h2{font-size:29px;margin-top:36px}
.ff-page-content h3{font-size:21px;margin-top:28px}
.ff-sidebar{background:#fff;border:1px solid var(--ff-border);border-radius:16px;padding:22px;box-shadow:var(--ff-shadow);height:max-content;position:sticky;top:125px}
.ff-sidebar a{color:var(--ff-navy);text-decoration:none}
.ff-sidebar a:hover{color:var(--ff-red)}
.ff-contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:24px 0}
.ff-contact-box{background:#fff;border:1px solid var(--ff-border);border-radius:14px;padding:18px}
.ff-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.ff-form-field{display:flex;flex-direction:column;gap:5px}
.ff-form-field.full{grid-column:1/-1}
.ff-form-field label{font-size:12px;font-weight:700;color:var(--ff-navy)}
.ff-form-field input,.ff-form-field textarea{width:100%;padding:12px 13px;border:1px solid #ccd7de;border-radius:9px;background:#fff;font-family:"Open Sans";font-size:14px}
.ff-form-field textarea{min-height:150px;resize:vertical}
.ff-notice{padding:12px 14px;border-radius:10px;margin-bottom:16px}
.ff-notice.success{background:#e9f8ef;color:#156637}.ff-notice.error{background:#fff0f1;color:#a3001b}

/* CTA and footer */
.ff-cta{background:var(--ff-red);color:#fff;padding:52px 0}
.ff-cta-row{display:flex;justify-content:space-between;align-items:center;gap:30px}
.ff-cta h2{font-size:31px;color:#fff;margin:0 0 6px}
.ff-footer{background:#032238;color:#dce8ef;padding:62px 0 26px}
.ff-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.25fr;gap:36px}
.ff-footer-logo-card{display:inline-block;background:#fff;border-radius:15px;padding:10px}
.ff-footer-logo{display:block;width:230px;max-height:180px;object-fit:contain}
.ff-footer h4{color:var(--ff-gold);font-size:14px;margin-bottom:12px}
.ff-footer a{color:#dce8ef;text-decoration:none}
.ff-footer a:hover{color:#fff}
.ff-footer p{font-size:12px}
.ff-footer hr{border:0;border-top:1px solid rgba(255,255,255,.16);margin:36px 0 18px}
.ff-copyright{font-size:11px;text-align:center}

/* wp content */
.alignwide{max-width:1220px;margin-left:auto;margin-right:auto}
.wp-block-image img{border-radius:14px}

@media(max-width:1120px){
 .ff-header-main{grid-template-columns:210px 1fr auto}
 .ff-nav{gap:13px}.ff-nav>li>a{font-size:11px}
 .ff-logo{width:195px}
}
@media(max-width:980px){
 .ff-header-main{grid-template-columns:1fr auto auto;min-height:88px}
 .ff-nav-wrap{display:none;position:absolute;left:0;right:0;top:88px;background:#fff;border-top:1px solid var(--ff-border);padding:15px 22px;box-shadow:var(--ff-shadow)}
 .ff-nav-wrap.is-open{display:block}
 .ff-nav{display:block}.ff-nav>li>a{padding:10px 0;font-size:13px}
 .ff-nav .sub-menu{display:block;position:static;box-shadow:none;border-top:0;padding:0 0 0 15px}
 .ff-nav .sub-menu a{padding:7px 0}
 .ff-mobile-toggle{display:block}
 .ff-quick-grid{grid-template-columns:repeat(4,1fr)}
 .ff-split,.ff-page-layout{grid-template-columns:1fr}
 .ff-card-grid,.ff-events{grid-template-columns:repeat(2,1fr)}
 .ff-country-strip{grid-template-columns:repeat(4,1fr)}
 .ff-gallery-grid{grid-template-columns:repeat(2,1fr)}
 .ff-sidebar{position:static}
 .ff-footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
 .ff-container{width:min(100% - 28px,1220px)}
 .ff-utility{display:none}
 .ff-header-main{grid-template-columns:1fr auto;min-height:80px}
 .ff-logo{width:180px;max-height:72px}
 .ff-header-actions .ff-button-red{display:none}
 .ff-slider{min-height:575px}
 .ff-slide h1{font-size:43px}
 .ff-slide p{font-size:16px}
 .ff-arrow{display:none}
 .ff-quick-grid{grid-template-columns:repeat(2,1fr)}
 .ff-card-grid,.ff-events,.ff-country-strip,.ff-gallery-grid,.ff-contact-grid,.ff-form-grid,.ff-footer-grid{grid-template-columns:1fr}
 .ff-form-field.full{grid-column:auto}
 .ff-split-image{height:330px}
 .ff-section{padding:60px 0}
 .ff-cta-row{flex-direction:column;align-items:flex-start}
}
.ff-partner-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:22px}.ff-partner-pill{background:#fff;border:1px solid var(--ff-border);border-radius:12px;padding:18px 12px;text-align:center;font-family:"Montserrat",Arial,sans-serif;font-size:12px;font-weight:700;color:var(--ff-navy);box-shadow:0 8px 24px rgba(5,43,70,.06)}
@media(max-width:980px){.ff-partner-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.ff-partner-grid{grid-template-columns:repeat(2,1fr)}}
