.yl-contact-tab[hidden],.yl-contact-form [hidden]{display:none!important}
.yl-contact-tab{position:fixed;right:0;top:48%;z-index:80;writing-mode:vertical-rl;display:flex;align-items:center;gap:.8rem;padding:1.1rem .75rem;background:var(--yl-lime);color:var(--yl-navy);border:1px solid #b9d125;border-right:0;border-radius:7px 0 0 7px;box-shadow:0 4px 18px #0029361a;font:800 var(--yl-type-small)/1.4 Inter,Arial,sans-serif;cursor:pointer}
.yl-contact-tab:hover{background:#e3ff6b}
.yl-contact-panel{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(42rem,100vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;background:#f8f8f0;color:var(--yl-navy);box-shadow:-12px 0 60px #00293630;overflow-y:auto;overscroll-behavior:contain;font-family:Inter,Arial,sans-serif}
.yl-contact-panel::backdrop{background:#00293691;backdrop-filter:blur(3px)}
.yl-contact-panel[open]{animation:yl-contact-enter .22s ease-out}
.yl-contact-panel-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#f8f8f0f7;border-bottom:1px solid #dce3d7;padding:.7rem 1.5rem}
.yl-contact-location{font-size:var(--yl-type-brand);letter-spacing:.1em;font-weight:800}
.yl-contact-close{border:0;background:transparent;color:var(--yl-navy);padding:.5rem;min-height:44px;font:700 var(--yl-type-small)/1.5 Inter,Arial,sans-serif;cursor:pointer}
.yl-contact-close span{font-size:var(--yl-type-subheading);margin-left:.5rem;vertical-align:middle}
.yl-contact-panel-content{padding:2rem clamp(1.5rem,5vw,3rem) 2.5rem;background:radial-gradient(ellipse at 100% 0,#deedb86b,transparent 28%)}
.yl-contact-intro{margin-bottom:1.5rem}
.yl-contact-intro>.yl-subtitle{margin:0 0 .8rem;font-size:var(--yl-type-label);font-weight:800;letter-spacing:.13em;line-height:1.5}
.yl-contact-intro h2{margin:0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:var(--yl-type-dialog-title);font-weight:800;letter-spacing:-.025em;line-height:1.1}
.yl-contact-intro>.yl-script{font:600 var(--yl-type-card)/1.1 Caveat,cursive;transform:rotate(-2deg);margin:.5rem 0 1.1rem;width:fit-content;border-bottom:3px solid var(--yl-lime)}
.yl-contact-intro>p:last-child{font-size:var(--yl-type-small);line-height:1.7;margin:0;max-width:32rem}
.yl-contact-inline{max-width:45rem;padding:clamp(1.5rem,4vw,2.5rem);margin-top:2rem!important;border-radius:7px;background:#f4f6e9;border-top:4px solid var(--yl-lime)}
.yl-contact-form{position:relative;font-family:Inter,Arial,sans-serif;color:var(--yl-navy)}
.yl-contact-form .yl-contact-required-note{font-size:var(--yl-type-label);line-height:1.5;margin:0 0 1.15rem}
.yl-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.yl-contact-full{grid-column:1/-1}
.yl-contact-field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.yl-contact-field label,.yl-contact-preference legend{font-size:var(--yl-type-small);font-weight:750;line-height:1.5}
.yl-contact-field input,.yl-contact-field select,.yl-contact-field textarea{box-sizing:border-box;width:100%;max-width:100%;border:1px solid #b7c9c5;border-radius:4px;background:#fff;color:var(--yl-navy);padding:.7rem .8rem;font:400 var(--yl-type-compact)/1.45 Inter,Arial,sans-serif;min-height:46px;box-shadow:0 1px 2px #00293603}
.yl-contact-field textarea{resize:vertical;min-height:120px}
.yl-contact-field [aria-invalid=true]{border:2px solid #a83f36}
.yl-contact-field input:focus,.yl-contact-field select:focus,.yl-contact-field textarea:focus{outline:3px solid #b1c751;outline-offset:2px;border-color:#4c6d62}
.yl-contact-hint{font-size:var(--yl-type-label);line-height:1.5;color:#4e6869}
.yl-contact-preference{margin:0;padding:0;border:0;min-width:0}
.yl-contact-preference legend{padding:0;margin-bottom:.55rem}
.yl-contact-preference>div{display:flex;gap:.5rem;flex-wrap:wrap}
.yl-contact-preference label{display:flex;align-items:center;gap:.5rem;padding:.65rem .8rem;border:1px solid #b7c9c5;border-radius:4px;background:#fff;font-size:var(--yl-type-label);line-height:1.5;cursor:pointer;min-height:44px;box-sizing:border-box}
.yl-contact-preference label:has(input:checked){background:#eaf2cc;border-color:#8aab31}
.yl-contact-preference input{accent-color:#36644a;margin:0;width:16px;height:16px}
.yl-contact-form .yl-contact-privacy{font-size:var(--yl-type-label);line-height:1.6;color:#4e6869;margin:1.25rem 0 .85rem}
.yl-contact-submit{width:100%;padding:.9rem 1.3rem;background:var(--yl-lime);color:var(--yl-navy);border:1px solid #c1da25;border-radius:4px;font:800 var(--yl-type-control)/1.4 Inter,Arial,sans-serif;min-height:49px;cursor:pointer}
.yl-contact-submit:hover{background:#e2ff65}
.yl-contact-submit:disabled{opacity:.65;cursor:wait}
.yl-contact-form .yl-contact-direct{font-size:var(--yl-type-label);line-height:1.6;margin:.9rem 0 0;text-align:center;overflow-wrap:anywhere}
.yl-contact-direct a{text-decoration:underline;text-underline-offset:3px;color:inherit;font-weight:650}
.yl-contact-feedback,.yl-contact-fallback-notice{padding:1rem 1.1rem;margin:0 0 1.25rem;border:1px solid #99b768;border-left:4px solid #79a33e;border-radius:4px;background:#ecf4dc;color:#1e4936;font-size:var(--yl-type-small);line-height:1.6}
.yl-contact-feedback.is-error{background:#fff0e9;border-color:#bf7362;color:#7d2c25}
.yl-contact-error{font-size:var(--yl-type-label);line-height:1.5;color:#9a3029}
.yl-contact-hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden;pointer-events:none}
.yl-contact-tab:focus-visible,.yl-contact-close:focus-visible,.yl-contact-submit:focus-visible,.yl-contact-panel a:focus-visible,.yl-contact-preference input:focus-visible{outline:3px solid #829b15;outline-offset:3px}
body.yl-contact-is-open{overflow:hidden}
@keyframes yl-contact-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(max-width:599px){.yl-contact-tab{writing-mode:horizontal-tb;top:auto;bottom:1rem;right:1rem;padding:.7rem 1rem;border:1px solid #b9d125;border-radius:24px}.yl-contact-panel-bar{padding:.5rem 1rem}.yl-contact-location{font-size:var(--yl-type-brand)}.yl-contact-panel-content{padding:1.5rem}.yl-contact-intro h2{font-size:var(--yl-type-dialog-title)}.yl-contact-intro>.yl-script{font-size:var(--yl-type-card)}}
@media(max-width:360px){.yl-contact-fields{grid-template-columns:1fr}.yl-contact-field{grid-column:1/-1}.yl-contact-panel-content{padding:1.25rem}}
@media(prefers-reduced-motion:reduce){.yl-contact-panel[open]{animation:none}}
