/*
 * Festal — WordPress additions.
 *
 * Everything here is additive: it styles markup the original HTML never had
 * (dropdown menus, logo images, video, blog, comments, widgets, WordPress core
 * classes, admin bar). Nothing overrides the original design in style.css.
 */

/* ---------- Accessibility ---------- */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto!important;clip-path:none;height:auto;width:auto;left:16px;top:16px;z-index:100000;background:var(--card);color:var(--text);padding:12px 18px;border-radius:999px;box-shadow:0 8px 25px rgba(70,50,35,.15);font-size:12px;font-weight:700}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.festal-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}

/* ---------- Cross-browser & real-device fixes ---------- */
/* Safari / iOS < 18 only understand the prefixed backdrop-filter (frosted sticky header). */
.header-scrolled{-webkit-backdrop-filter:blur(16px)}
.modal{-webkit-backdrop-filter:blur(12px)}
/* Stop iOS / Android enlarging text when the phone is rotated to landscape. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Touch devices have no mouse cursor: hide the custom cursor so it can't sit in the top-left corner. */
@media (hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}
/* Long menus / landscape phones: let the drawer scroll instead of cutting links off. */
.drawer{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.drawer>div:first-child{flex-shrink:0}
@media (max-height:520px){.drawer{padding-top:90px;justify-content:flex-start;gap:30px}.drawer nav{gap:12px!important}.drawer nav a{font-size:28px}}
/* iOS Safari zooms the page when focusing a field under 16px and doesn't zoom back. iOS only. */
@supports (-webkit-touch-callout:none){
  .form-card input,.form-card textarea,.form-card select,.newsletter input,.comment-respond input,.comment-respond textarea{font-size:16px}
}
/* Firefox ignores ::-webkit-scrollbar; give it the same sand scrollbar. */
@supports (-moz-appearance:none){html{scrollbar-color:var(--sand) var(--bg);scrollbar-width:thin}}

/* ---------- Admin bar offset for the fixed header ---------- */
.admin-bar .header{top:32px}
@media screen and (max-width:782px){.admin-bar .header{top:46px}}
@media screen and (max-width:600px){.admin-bar #wpadminbar{position:fixed}}

/* ---------- Header options ---------- */
.festal-header-static .header{position:absolute}

/* ---------- Logo images (main / dark / white) ---------- */
.logo.festal-logo-has-image{display:inline-flex;align-items:center}
.logo .festal-logo{display:block;height:var(--festal-logo-h,40px);width:var(--festal-logo-w,auto);max-width:60vw;object-fit:contain}
.logo .festal-logo-dark,.logo .festal-logo-white{display:none}
.header-scrolled .festal-logo-has-dark .festal-logo-main{display:none}
.header-scrolled .festal-logo-has-dark .festal-logo-dark{display:block}
.drawer-open .festal-logo-has-white .festal-logo-main,.drawer-open .festal-logo-has-white .festal-logo-dark{display:none}
.drawer-open .festal-logo-has-white .festal-logo-white{display:block}
.festal-footer-logo{display:block;height:auto;max-height:60px;width:auto;max-width:220px}

/* ---------- Dropdown menus (desktop) ---------- */
.festal-has-sub{position:relative;display:inline-flex;align-items:center}
.festal-has-sub>a{padding-right:14px}
.festal-has-sub>a:before{content:"";position:absolute;right:0;top:50%;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-70%) rotate(45deg)}
.festal-submenu{position:absolute;left:-18px;top:100%;min-width:220px;padding:14px 0;margin-top:14px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 40px -15px rgba(140,105,77,.25);display:flex;flex-direction:column;gap:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.3s}
.festal-submenu:before{content:"";position:absolute;left:0;right:0;top:-15px;height:15px}
.festal-submenu a{display:block;padding:9px 18px;white-space:nowrap}
.navlinks .festal-submenu a:after{left:18px;bottom:4px}
.navlinks .festal-submenu a:hover:after{width:calc(100% - 36px)}
.festal-has-sub:hover>.festal-submenu,.festal-has-sub:focus-within>.festal-submenu{opacity:1;visibility:visible;transform:none}
.festal-mobile-sub{display:flex;flex-direction:column;gap:14px;padding-left:22px;margin-top:-6px}
.drawer nav a.festal-mobile-sublink{font-size:22px;color:#d8cfc6}
.festal-drawer-social{font-size:12px;letter-spacing:.08em}
.festal-drawer-social a{color:var(--sand)}

/* ---------- Section backgrounds & overlay ---------- */
.festal-has-overlay{position:relative;isolation:isolate}
.festal-has-overlay:before{content:"";position:absolute;inset:0;background:var(--festal-overlay,#1E1B18);opacity:var(--festal-overlay-opacity,0);z-index:-1;pointer-events:none}
@media (min-width:901px) and (hover:hover){.festal-bg-fixed{background-attachment:fixed}}

/* ---------- Video in hero / brand hero (sized like the original images) ---------- */
.festal-video{display:block;width:100%;object-fit:cover;transition:1s;background:var(--surface)}
.festal-embed-wrap{position:relative;overflow:hidden;container-type:size;background:var(--dark) center/cover no-repeat;transition:1s}
.festal-embed{position:absolute;top:50%;left:50%;border:0;width:max(100%,177.78cqh);height:max(100%,56.25cqw);transform:translate(-50%,-50%);pointer-events:auto}
.hero-image .festal-video,.hero-image .festal-embed-wrap{height:clamp(340px,48vw,620px)}
.hero-image:hover .festal-video,.hero-image:hover .festal-embed-wrap{transform:scale(1.035)}
.brand-hero-image .festal-video,.brand-hero-image .festal-embed-wrap{height:570px}
.brand-hero-image:hover .festal-video,.brand-hero-image:hover .festal-embed-wrap{transform:scale(1.04)}
@media(max-width:600px){.hero-image .festal-video,.hero-image .festal-embed-wrap{height:430px}.brand-hero-image .festal-video,.brand-hero-image .festal-embed-wrap{height:400px}}

/* ---------- Testimonials ---------- */
.testimonial+.testimonial{margin-top:30px}
.testimonial.festal-testimonial-no-image{grid-template-columns:1fr}

/* ---------- Form plugins inside the original form card ---------- */
.festal-form-plugin input:not([type=submit]):not([type=checkbox]):not([type=radio]),.festal-form-plugin textarea,.festal-form-plugin select{display:block;width:100%;margin-top:8px;border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:14px;font:13px "Plus Jakarta Sans";color:var(--text)}
.festal-form-plugin label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.festal-form-plugin input[type=submit],.festal-form-plugin button[type=submit]{border:0;cursor:pointer;display:inline-flex;align-items:center;border-radius:999px;padding:13px 23px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;background:var(--terra);color:#fff;transition:.3s}
.festal-form-plugin input[type=submit]:hover,.festal-form-plugin button[type=submit]:hover{background:var(--dark)}

/* ---------- Footer extras ---------- */
/* In the original HTML a quoting error in the newsletter's inline onsubmit leaked an invisible
   text node into the pill, which always rendered it 52px tall (button 42px). The broken markup is
   gone; this keeps the exact original size at every breakpoint. */
.footer-banner .newsletter{min-height:52px}
.footer-bottom div a{color:rgba(255,255,255,.55)}
.festal-footer-widgets{padding:0 0 45px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px}
.festal-footer-widgets .widget ul{display:grid;gap:4px}
.festal-sub-list{padding-left:12px!important;margin-top:4px!important}

/* ---------- Blog: post grid (brand-card component) ---------- */
.festal-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.festal-post-card{display:flex;min-width:0}
.festal-post-card .brand-card{flex:1;border:1px solid var(--border);border-radius:14px;overflow:hidden;--accent:var(--terra)}
.festal-post-card .brand-image span{font-family:"Plus Jakarta Sans",sans-serif;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.festal-post-card .brand-card h3{font-size:25px;line-height:1.05}
@media(max-width:900px){.festal-post-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.festal-post-grid{grid-template-columns:1fr}}
.festal-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:55px}
.festal-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:.3s}
.festal-pagination .page-numbers:hover{border-color:var(--terra);color:var(--terra)}
.festal-pagination .page-numbers.current{background:var(--terra);border-color:var(--terra);color:#fff}
.festal-none{margin-bottom:0}
.festal-none .festal-search,.festal-hero-search .festal-search{margin:28px 0 0}
.festal-none .festal-search{margin-left:auto;margin-right:auto}

/* ---------- Search form (newsletter pill) ---------- */
.festal-search{border:1px solid var(--border);box-shadow:0 10px 30px -18px rgba(70,50,35,.35)}
.festal-search input{min-width:0;height:40px;color:var(--text)}
.festal-search button{cursor:pointer}
.festal-hero-search .festal-search{margin:30px 0 0}
.festal-404-actions{justify-content:flex-start}

/* ---------- Single post ---------- */
.festal-post-meta{font-size:12px!important;letter-spacing:.06em;text-transform:uppercase;margin-top:18px}
.festal-breadcrumbs{margin-top:18px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.festal-breadcrumbs a{color:var(--terra)}
.festal-single{padding-top:60px}
.festal-single-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:60px}
.festal-has-sidebar .festal-single-layout{grid-template-columns:minmax(0,1fr) 300px}
.festal-single-image{margin:0 0 60px;max-width:none}
.festal-single-main .festal-entry{margin:0 auto}
.festal-has-sidebar .festal-single-main .festal-entry{margin:0}
.festal-tags{max-width:760px;margin:40px auto 0}
.festal-has-sidebar .festal-tags{margin-left:0}
.festal-tags a span:hover{border-color:var(--terra);color:var(--terra)}
.festal-post-nav{max-width:760px;margin:50px auto 0;border-top:1px solid var(--border);padding-top:30px}
.festal-has-sidebar .festal-post-nav{margin-left:0}
.festal-post-nav .nav-links{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.festal-post-nav .nav-next{text-align:right;grid-column:2}
.festal-post-nav small{display:block;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-bottom:6px}
.festal-post-nav span{font:600 24px/1.1 "Cormorant Garamond",serif}
@media(max-width:900px){.festal-has-sidebar .festal-single-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.festal-single-image{margin-bottom:40px}.festal-post-nav .nav-links{grid-template-columns:1fr}.festal-post-nav .nav-next{grid-column:auto;text-align:left}}

/* ---------- Sidebar / widgets ---------- */
.festal-sidebar{display:grid;gap:30px;align-content:start;position:sticky;top:110px;min-width:0}
.festal-sidebar .widget,.festal-single-main{min-width:0}
.festal-search{max-width:100%}
.festal-search input{width:100%}
@media(max-width:900px){.festal-sidebar{position:static}}
@media(max-width:600px){.festal-sidebar .widget{padding:22px 20px}}
.festal-sidebar .widget{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:26px}
.festal-sidebar .festal-widget-title,.festal-sidebar .wp-block-heading{font:700 24px/1 "Cormorant Garamond",serif;margin:0 0 14px}
.festal-sidebar ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13px;color:var(--muted)}
.festal-sidebar a:hover{color:var(--terra)}
.festal-sidebar .festal-search{box-shadow:none}
.festal-sidebar .wp-block-search__inside-wrapper{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:4px}
.festal-sidebar .wp-block-search__input{border:0;background:transparent;padding:0 12px;outline:0}
.festal-sidebar .wp-block-search__button{border:0;border-radius:999px;background:var(--dark);color:#fff;padding:10px 16px;font-size:10px;font-weight:700;text-transform:uppercase;margin:0}

/* ---------- Editor content (posts, simple pages, "Page Content" section) ---------- */
.festal-entry{max-width:760px;margin:0 auto;font-size:16px;line-height:1.85;color:var(--text)}
.festal-entry-wide{max-width:none}
.festal-entry>*:first-child{margin-top:0}
.festal-entry p,.festal-entry ul,.festal-entry ol{margin:0 0 1.4em}
.festal-entry p,.festal-entry li{color:#4a4640}
.festal-entry h2,.festal-entry h3,.festal-entry h4{font-family:"Cormorant Garamond",serif;line-height:1.05;letter-spacing:-.02em;margin:1.6em 0 .5em;color:var(--text)}
.festal-entry h2{font-size:clamp(34px,4vw,46px);font-weight:600}
.festal-entry h3{font-size:30px;font-weight:600}
.festal-entry h4{font-size:24px;font-weight:700}
.festal-entry a{color:var(--terra);text-decoration:underline;text-underline-offset:3px}
.festal-entry img{max-width:100%;height:auto;border-radius:14px}
.festal-entry figure{margin:2em 0}
.festal-entry figcaption,.festal-entry .wp-element-caption{font-size:11px;color:var(--muted);margin-top:10px;text-align:left}
.festal-entry blockquote,.festal-entry .wp-block-quote{margin:2em 0;padding:0 0 0 28px;border-left:2px solid var(--terra);font:italic 400 clamp(26px,3vw,34px)/1.2 "Cormorant Garamond",serif;color:var(--text)}
.festal-entry blockquote p{color:inherit;margin-bottom:.5em}
.festal-entry blockquote cite{display:block;font:700 10px/1.6 "Plus Jakarta Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);font-style:normal}
.festal-entry hr{border:0;border-top:1px solid var(--border);margin:3em 0}
.festal-entry table{width:100%;border-collapse:collapse;font-size:14px}
.festal-entry th,.festal-entry td{border-bottom:1px solid var(--border);padding:12px 8px;text-align:left}
.festal-entry pre,.festal-entry code{font-size:13px;background:var(--surface);border-radius:8px}
.festal-entry pre{padding:18px;overflow:auto}
.festal-entry .alignwide{max-width:1000px;margin-left:50%;transform:translateX(-50%);width:min(1000px,calc(100vw - 48px))}
.festal-entry .alignfull{max-width:none;margin-left:50%;transform:translateX(-50%);width:100vw}
.festal-entry .alignleft{float:left;margin:.4em 1.5em 1em 0}
.festal-entry .alignright{float:right;margin:.4em 0 1em 1.5em}
.festal-entry .aligncenter{margin-left:auto;margin-right:auto;display:block}
.festal-entry .wp-block-button__link{display:inline-flex;align-items:center;border-radius:999px;padding:13px 23px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;background:var(--terra);color:#fff;text-decoration:none;transition:.3s}
.festal-entry .wp-block-button__link:hover{background:var(--dark);transform:translateY(-2px)}
.festal-entry .is-style-outline .wp-block-button__link{background:rgba(255,255,255,.82);border:1px solid var(--border);color:var(--text)}
.festal-page-links{margin-top:30px;font-size:12px;display:flex;gap:10px}
.section.dark .festal-entry,.section.dark .festal-entry p,.section.dark .festal-entry li,.section.dark .festal-entry h2,.section.dark .festal-entry h3{color:#d8d1c9}
.wp-caption{max-width:100%}
.sticky,.bypostauthor,.gallery-caption{outline:0}

/* ---------- Comments ---------- */
.festal-comments{max-width:760px;margin:60px auto 0}
.festal-has-sidebar .festal-comments{margin-left:0}
.section .festal-comments-title{font:600 40px/1 "Cormorant Garamond",serif;margin:0 0 25px}
.festal-comment-list{list-style:none;margin:0 0 40px;padding:0}
.festal-comment-list .comment{border-top:1px solid var(--border);padding:22px 0}
.festal-comment-list .children{list-style:none;padding-left:30px}
.festal-comment-list .comment-author{display:flex;align-items:center;gap:12px;font-weight:700;font-size:13px}
.festal-comment-list .avatar{border-radius:50%}
.festal-comment-list .comment-metadata{font-size:11px;color:var(--muted);margin:6px 0 0 60px}
.festal-comment-list .comment-content{font-size:14px;line-height:1.75;color:#4a4640;margin-left:60px}
.festal-comment-list .reply a{font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--terra);margin-left:60px}
.comment-respond.form-card .comment-reply-title{font:600 34px/1 "Cormorant Garamond",serif;margin:0 0 20px}
.comment-respond.form-card p{margin:0 0 18px}
.comment-respond.form-card .comment-notes,.comment-respond.form-card .logged-in-as{font-size:12px;color:var(--muted)}
.comment-respond.form-card .comment-form-cookies-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px}
.comment-respond.form-card .comment-form-cookies-consent input{width:auto;margin:3px 0 0;display:inline-block}
.comment-respond.form-card .comment-form-cookies-consent label{letter-spacing:0;text-transform:none;font-weight:400}

/* ---------- Galleries & embeds ---------- */
.festal-entry .wp-block-embed iframe,.festal-entry iframe{max-width:100%}
.festal-entry .wp-block-gallery img{border-radius:10px}
