/* Native Supreme controls style supported fields. Composition and documented vendor fallbacks remain. */
body :is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) {position: relative; isolation: isolate; overflow: clip;}
body :is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .iw-info-row {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; width: min(1120px,calc(100% - 64px)); max-width: 1120px;}
body .iw-info-row>.et_pb_column {position: relative; display: block !important; width: auto !important; max-width: 100%; min-width: 0;}
:is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .et_pb_text p {padding-bottom: 0;}
:is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .iw-info-title h2 {margin: 0; padding: 0;}
:is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .iw-info-description {max-width: 520px;}
body .iw-festival-route-cta .iw-route-cta-row {grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);}
.iw-festival-route-cta .iw-route-cta-art {isolation: isolate; min-height: 445px;}
.iw-festival-route-cta .iw-route-cta-food {position: relative; z-index: 2; width: 100%; line-height: 0; filter: drop-shadow(0 15px 14px #3e2d1718);}
.iw-festival-route-cta .iw-route-cta-food img {display: block; width: 100%; height: auto;}
.iw-festival-route-cta :is(.iw-route-cta-shape,.iw-route-cta-egg) {position: absolute !important; pointer-events: none; user-select: none; line-height: 0;}
.iw-festival-route-cta .iw-route-cta-shape {z-index: 0; width: 105%; left: -25px; top: 10px; transform: rotate(-15deg);}
.iw-festival-route-cta .iw-route-cta-egg {z-index: 3; right: -6px; bottom: 5px; width: 112px; transform: rotate(16deg);}
.iw-festival-route-cta .et_pb_button_module_wrapper {width: fit-content !important;}
.iw-festival-route-cta:not(.iw-roots-refresh) .et_pb_button_module_wrapper {margin-top: 28px !important;}
body #page-container .iw-festival-route-cta .iw-festival-cta-button.et_pb_button {position: relative; display: inline-flex; align-items: center; min-height: 50px; border: 0; border-radius: 12px; box-shadow: none;}
body #page-container .iw-festival-route-cta .iw-festival-cta-button.et_pb_button::after {right: 18px; left: auto; top: 50%; margin: 0; transform: translateY(-50%); font-size: 21px; line-height: 1; opacity: 1;}
body .iw-festival-faq .iw-faq-row {grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: start;}
.iw-festival-faq .iw-info-description {opacity: .95;}
.iw-festival-faq .iw-faq-copy {isolation: isolate;}
.iw-festival-faq .iw-faq-tomato-art {position: absolute !important; left: -75px; bottom: -200px; width: 150px; opacity: .13; pointer-events: none; transform: rotate(-15deg);}
.iw-festival-faq .iw-faq-white-shape {position: absolute !important; z-index: -1; right: -75px; top: -60px; width: 230px; opacity: .06; pointer-events: none; transform: rotate(12deg);}
.iw-festival-faq .iw-festival-faq-item {border: 0 !important; border-radius: 16px; background: #FFFEF8; box-shadow: none;}
.iw-festival-faq .iw-festival-faq-item .et_pb_toggle_title {padding: 0 34px 0 0; cursor: pointer; min-height: 24px;}
.iw-festival-faq .et_pb_toggle_title::before {display: block !important; content: '' !important; position: absolute; right: 0; top: 0; margin: 0; width: 22px; height: 22px; background: #E31351; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.iw-festival-faq .et_pb_toggle_open .et_pb_toggle_title::before {mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");}
.iw-festival-faq .et_pb_toggle_content {padding-top: 16px;}
.iw-festival-faq .et_pb_toggle_content p {padding-bottom: 0; margin: 0;}
.iw-festival-faq .et_pb_toggle_content a {text-decoration: underline; text-underline-offset: 3px;}
.iw-festival-faq .et_pb_toggle_title:focus-visible {outline: 0; border-radius: 6px; box-shadow: 0 0 0 3px #E3135130;}
body .iw-festival-contact .iw-contact-row {align-items: center; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);}
.iw-festival-contact .iw-info-description {max-width: 430px;}
.iw-festival-contact .iw-contact-copy {isolation: isolate;}
.iw-festival-contact :is(.iw-contact-rice-art,.iw-contact-egg-art) {position: absolute !important; z-index: -1; pointer-events: none;}
.iw-festival-contact .iw-contact-rice-art {left: -75px; bottom: -160px; width: 180px; opacity: .13; transform: rotate(-12deg);}
.iw-festival-contact .iw-contact-egg-art {right: -40px; top: -115px; width: 120px; opacity: .85; transform: rotate(16deg);}
.iw-festival-contact .iw-contact-form-design {margin: 0 !important;}
.iw-contact-design {border-radius: 24px; box-shadow: 0 6px 24px #143c0c0a;}
.iw-contact-design h3 {margin: 0 0 16px; padding: 0;}
.iw-contact-design .iw-contact-preview-note {background: #f2eddf; border-radius: 8px; padding: 8px 10px; margin: 0 0 22px;}
.iw-contact-input-row {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px;}
.iw-contact-design label {display: block; margin: 0 0 18px;}
.iw-contact-design input:not([type="submit"]):not([type="hidden"]),.iw-contact-design textarea {display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 48px; margin: 8px 0 0; padding: 12px 14px; border: 1px solid #D6D3CC; border-radius: 10px; box-shadow: none; resize: vertical;}
.iw-contact-design textarea {min-height: 140px;}
.iw-contact-design :is(input,textarea):focus {outline: none; border-color: #E31351; box-shadow: 0 0 0 2px #E3135118;}
.iw-contact-design button {display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 48px; padding: 12px 18px; border: 0; border-radius: 12px; background: #E31351; color: #fff; font: 650 14px/1.4 'IW Bricolage',sans-serif; cursor: pointer;}
.iw-contact-design button svg {width: 20px; height: 20px; flex-shrink: 0;}
.iw-contact-design button:hover {background: #000;}
.iw-contact-design button:focus-visible {outline: none; box-shadow: 0 0 0 3px #E3135140;}
.iw-contact-design .iw-contact-preview-status {font: 400 13px/1.5 'IW Bricolage',sans-serif; color: #5d5547; margin: 16px 0 0; padding: 0;}
.iw-contact-preview-status:empty {display: none;}
body .iw-festival-contact .iw-contact-channels {grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch;}
body .iw-contact-channels>.iw-contact-channel {border-radius: 16px; overflow-wrap: anywhere;}
.iw-contact-channel::before {content: ''; position: absolute; left: 22px; top: 25px; display: block; width: 25px; height: 25px; background: #E31351; mask-position: center; mask-size: contain; mask-repeat: no-repeat;}
.iw-contact-location::before {mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 0 1 16 0Z' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");}
.iw-contact-phone::before {mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3.1-8.7A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 2 .7 2.9a2 2 0 0 1-.5 2.1L8 10a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.4 1.9.6 2.9.7a2 2 0 0 1 1.7 2Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}
.iw-contact-email::before {mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='4' width='20' height='16' rx='2' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m2 6 10 7L22 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");}
.iw-festival-contact .iw-contact-detail h3 {padding: 0; margin: 0 0 8px;}
.iw-festival-contact .iw-contact-detail p {padding: 0; margin: 0 0 4px;}
.iw-festival-contact .iw-contact-detail a {text-decoration: none; overflow-wrap: anywhere;}
.iw-festival-contact .iw-contact-detail a:hover {text-decoration: underline; text-underline-offset: 3px;}
@media (max-width:1100px) {.iw-contact-input-row {grid-template-columns: minmax(0,1fr); gap: 0;}}
@media (max-width:980px) {body :is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .iw-info-row {grid-template-columns: minmax(0,1fr); width: calc(100% - 48px); max-width: 680px;}.iw-festival-route-cta .iw-route-cta-copy {order: -1;}.iw-festival-route-cta .iw-route-cta-art {width: min(100%,480px) !important; min-height: 400px;}.iw-festival-faq .iw-faq-tomato-art {left: auto; right: 0; bottom: 0; width: 110px; opacity: .09;}.iw-festival-faq .iw-faq-white-shape {right: -50px; top: -60px; width: 180px;}.iw-festival-contact .iw-contact-rice-art {display: none;}.iw-festival-contact .iw-contact-egg-art {right: -5px; top: -50px; width: 95px; opacity: .65;}body .iw-festival-contact .iw-contact-channels {grid-template-columns: minmax(0,1fr);}.iw-contact-input-row {grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px;}}
@media (max-width:600px) {body :is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .iw-info-row {width: calc(100% - 40px);}.iw-festival-route-cta .iw-route-cta-art {min-height: 290px;}.iw-festival-route-cta .iw-route-cta-egg {width: 88px; right: -5px; bottom: 0;}.iw-festival-faq .iw-faq-white-shape {width: 160px; right: -60px; top: -40px;}.iw-contact-design {border-radius: 22px;}.iw-contact-input-row {grid-template-columns: minmax(0,1fr); gap: 0;}.iw-contact-design button {width: 100%;}.iw-festival-contact .iw-contact-egg-art {width: 82px; top: -36px; right: -12px;}.iw-contact-channel::before {left: 20px; top: 23px; width: 24px; height: 24px;}}
@media (max-width:360px) {body :is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) .iw-info-row {width: calc(100% - 32px);}.iw-festival-route-cta .iw-route-cta-art {min-height: 255px;}}
body :is(.iw-festival-route-cta,.iw-festival-faq,.iw-festival-contact) {scroll-margin-top: 100px;}
.iw-contact-design .wpcf7 {width: 100%; margin: 0;}
.iw-contact-design .wpcf7 form {margin: 0; padding: 0;}
.iw-contact-design .wpcf7 form p {margin: 0; padding: 0;}
.iw-contact-design .iw-cf7-field {min-width: 0; margin-bottom: 18px;}
.iw-contact-design .iw-cf7-field label {display: block; margin: 0 0 8px;}
.iw-contact-design .wpcf7-form-control-wrap {display: block; min-width: 0; width: 100%;}
.iw-contact-design .wpcf7-form-control-wrap :is(input,textarea) {margin: 0;}
.iw-contact-design .iw-cf7-actions {display: flex; align-items: center; gap: 10px; position: relative;}
.iw-contact-design input.wpcf7-submit {display: inline-block; width: auto; max-width: 100%; min-height: 48px; margin: 0; padding: 12px 48px 12px 18px; border: 0; border-radius: 12px; background: #E31351 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14m-7-7 7 7-7 7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 18px center/20px 20px; color: #fff; font: 650 14px/1.4 'IW Bricolage',sans-serif; cursor: pointer; appearance: none; box-shadow: none; resize: none;}
.iw-contact-design input.wpcf7-submit:hover {background-color: #000;}
.iw-contact-design input.wpcf7-submit:focus-visible {outline: none; box-shadow: 0 0 0 3px #E3135140;}
.iw-contact-design .wpcf7-spinner {margin: 0; flex: 0 0 24px;}
.iw-contact-design .wpcf7-not-valid-tip {margin-top: 5px;}
.iw-contact-design .wpcf7-form-control.wpcf7-not-valid {border-color: #E31351; background: #fff7f7;}
.iw-contact-design .wpcf7 form .wpcf7-response-output {margin: 20px 0 0; padding: 12px 14px; border: 0; border-radius: 10px; background: #f2eddf; color: #5d5547; font: 400 13px/1.5 'IW Bricolage',sans-serif;}
@media (max-width:600px) {.iw-contact-design input.wpcf7-submit {width: 100%;}.iw-contact-design .wpcf7-spinner {position: absolute; right: 16px; top: 50%; transform: translateY(-50%);}.iw-contact-design form.submitting input.wpcf7-submit {background-image: none;}}
.iw-contact-design .iw-cf7-field br {display: none;}
.iw-contact-design .iw-cf7-actions>p {display: flex; align-items: center; gap: 10px;}
@media (max-width:600px) {.iw-contact-design .iw-cf7-actions>p {width: 100%;}}
body .iw-festival-contact .iw-contact-form-column.iw-contact-design {border-radius: 24px;}
.iw-contact-design .iw-contact-cf7 {font-family: 'IW Bricolage',sans-serif;}
.iw-contact-design .iw-contact-cf7 .wpcf7-textarea {height: 140px; min-height: 140px;}
.iw-contact-design .iw-contact-cf7 .wpcf7-response-output {border: 0 !important;}
body #page-container .iw-contact-design .iw-contact-cf7 .dsm-custom-submit {position: relative; display: inline-flex; align-items: center; justify-content: space-between; min-height: 48px; width: auto; max-width: 100%; margin: 0; padding: 12px 48px 12px 18px !important; border: 0; border-radius: 12px; box-shadow: none; cursor: pointer;}
body #page-container .iw-contact-design .iw-contact-cf7 .dsm-custom-submit::after {content: '' !important; display: block !important; position: absolute; right: 18px; left: auto; top: 50%; margin: 0; width: 20px; height: 20px; transform: translateY(-50%); opacity: 1; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14m-7-7 7 7-7 7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.iw-contact-design .iw-contact-cf7 .wpcf7 form.submitting .dsm-custom-submit::after {opacity: 0;}
@media (max-width:600px) {body .iw-festival-contact .iw-contact-form-column.iw-contact-design {border-radius: 22px;}body #page-container .iw-contact-design .iw-contact-cf7 .dsm-custom-submit {width: 100%;}}

/* Supreme omits textarea from its typography selector in this version. */
.iw-contact-design textarea { font:400 16px/1.5 "Bricolage Grotesque",sans-serif; color:#000; }

/* CF7/Supreme compatibility: CF7 inserts its spinner as a sibling of the
 * Supreme button. Anchor it to that button's reserved arrow slot, not the form.
 * Keep one indicator and let CF7's submitting state control its visibility. */
body #page-container .iw-contact-design .iw-contact-cf7 .iw-cf7-actions>p {position:relative;width:fit-content;max-width:100%;}
body #page-container .iw-contact-design .iw-contact-cf7 .iw-cf7-actions .dsm-spinner {display:none;}
body #page-container .iw-contact-design .iw-contact-cf7 .iw-cf7-actions .wpcf7-spinner {position:absolute;left:auto;right:16px;top:50%;transform:translateY(-50%);margin:0;visibility:hidden;pointer-events:none;}
body #page-container .iw-contact-design .iw-contact-cf7 form.submitting .iw-cf7-actions .wpcf7-spinner {visibility:visible;}
@media(max-width:600px){body #page-container .iw-contact-design .iw-contact-cf7 .iw-cf7-actions>p {width:100%;}}
body #page-container .iw-contact-design .iw-contact-cf7 form.submitting .dsm-custom-submit::after {opacity:0;}
