/* Y.N.I Solutions 10.9 : correctifs structurels Elementor + iconographie et accès direct. */
/* 1. Les conteneurs Elementor sont flex par défaut : forcer la grille réelle, pas seulement la maquette HTML. */
#yni-site :is(.y107-fit-grid,.y107-feature-grid,.y107-included-grid){width:min(1220px,100%)!important;max-width:1220px!important;margin-inline:auto!important;box-sizing:border-box!important;min-width:0!important;}
#yni-site .y107-fit-grid{display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:clamp(36px,5vw,85px)!important;align-items:start!important;}
#yni-site .y107-fit-grid > :is(.e-con,.elementor-element,.y107-fit-sticky,.y107-fit-list){width:100%!important;min-width:0!important;max-width:none!important;flex:initial!important;}
#yni-site .y107-fit-sticky{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;position:relative!important;top:auto!important;min-width:0!important;gap:0!important;}
#yni-site .y107-fit-sticky > .elementor-element{position:relative!important;inset:auto!important;flex:0 0 auto!important;width:100%!important;min-width:0!important;max-width:none!important;order:initial!important;}
#yni-site .y107-fit-sticky .elementor-widget-container{position:static!important;max-width:100%!important;}
#yni-site .y107-fit-sticky :is(h2,.elementor-heading-title){display:block!important;position:static!important;overflow-wrap:normal!important;word-break:normal!important;line-height:1.17!important;margin:0 0 22px!important;font-size:clamp(30px,3vw,45px)!important;}
#yni-site .y107-fit-sticky .y107-kicker{display:block!important;margin:0 0 16px!important;}
#yni-site .y107-fit-sticky :is(.y107-fit-lead,.y107-fit-lead p){display:block!important;position:static!important;line-height:1.48!important;margin:0 0 18px!important;font-size:clamp(19px,1.7vw,23px)!important;}
#yni-site .y107-fit-sticky :is(.y107-fit-sub,.y107-fit-sub p){display:block!important;position:static!important;line-height:1.73!important;margin:0 0 14px!important;font-size:16px!important;}
#yni-site .y107-fit-sticky :is(.y107-text-link,.elementor-widget-button.y107-text-link){margin-top:17px!important;position:relative!important;display:inline-flex!important;width:auto!important;align-self:flex-start!important;}
#yni-site .y107-fit-list{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important;justify-content:flex-start!important;min-width:0!important;}
#yni-site .y107-fit-item{display:grid!important;grid-template-columns:38px minmax(0,1fr)!important;gap:17px!important;padding:26px 0!important;min-width:0!important;align-items:start!important;flex:none!important;}
#yni-site .y107-fit-item > :is(.y107-fit-mark,.y107-fit-item-copy){min-width:0!important;max-width:100%!important;}
#yni-site .y107-fit-item .y107-fit-item-copy{width:100%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:9px!important;}
#yni-site .y107-fit-item-copy > .elementor-element{position:relative!important;inset:auto!important;width:100%!important;flex:0 0 auto!important;}
#yni-site .y107-fit-item-copy :is(h3,.elementor-heading-title){margin:0!important;line-height:1.32!important;color:#1d2228!important;}
#yni-site .y107-fit-item-copy :is(p,.elementor-widget-text-editor p){margin:0!important;line-height:1.63!important;color:#535862!important;}
/* 2. Cartes d'offres : 3 colonnes stables avec marges et visuels vectoriels uniques. */
#yni-site .y107-feature-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important;align-items:stretch!important;}
#yni-site .y107-feature-grid > :is(.y107-feature,.elementor-element.y107-feature){width:auto!important;max-width:none!important;min-width:0!important;flex:initial!important;box-sizing:border-box!important;}
#yni-site .y107-feature{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;min-height:390px!important;padding:22px 24px 26px!important;gap:9px!important;overflow:hidden!important;}
#yni-site .y107-feature::before{content:''!important;display:block!important;position:relative!important;inset:auto!important;width:100%!important;height:132px!important;flex:0 0 132px!important;border-radius:14px!important;background:#f9ede5 url('yni-illustration-diag.svg') center / cover no-repeat!important;opacity:1!important;transform:none!important;box-shadow:none!important;pointer-events:none!important;}
#yni-site .y107-feature:nth-child(2)::before{background-image:url('yni-illustration-transfer.svg')!important;}
#yni-site .y107-feature:nth-child(3)::before{background-image:url('yni-illustration-secure.svg')!important;}
#yni-site .y107-feature .y108-feature-icon{display:none!important;}
#yni-site .y107-feature > .elementor-element{position:relative!important;width:100%!important;min-width:0!important;flex:0 0 auto!important;min-height:0!important;}
#yni-site .y107-feature :is(h3,.elementor-heading-title){color:#23242b!important;line-height:1.23!important;font-size:clamp(20px,1.8vw,26px)!important;overflow-wrap:break-word!important;margin:6px 0 4px!important;}
#yni-site .y107-feature :is(p,.elementor-widget-text-editor p){margin:0!important;line-height:1.69!important;color:#4a505a!important;}
#yni-site .y107-feature :is(.y107-feature-link,.elementor-widget-button.y107-feature-link){display:inline-flex!important;align-self:flex-start!important;width:auto!important;margin-top:auto!important;padding-top:15px!important;}
#yni-site .y107-feature .elementor-button{display:inline-flex!important;align-items:center!important;}
/* 3. Périmètre et bandeau de fin : répartitions desktop. */
#yni-site .y107-included-grid{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:50px!important;align-items:center!important;}
#yni-site .y107-included-grid > .elementor-element{width:100%!important;min-width:0!important;max-width:100%!important;flex:none!important;}
#yni-site .y107-next{display:flex!important;flex-flow:row wrap!important;gap:25px!important;align-items:center!important;justify-content:space-between!important;}
#yni-site .y107-next-copy{width:min(690px,100%)!important;min-width:0!important;flex:1 1 350px!important;}
/* 4. Boutons : animations uniformes, liens non collés. */
#yni-site .y107-feature .y107-feature-link .elementor-button,#yni-site .y107-feature a.y107-feature-link{position:relative!important;border:1px solid #f3c7a7!important;background:#fff9f4!important;color:#a8471a!important;padding:12px 17px!important;border-radius:999px!important;font-weight:800!important;overflow:hidden!important;transition:background .25s ease,transform .25s ease,box-shadow .25s ease!important;}
#yni-site .y107-feature .y107-feature-link:hover .elementor-button,#yni-site .y107-feature a.y107-feature-link:hover{background:#fb702c!important;color:#1d2027!important;transform:translateY(-2px)!important;box-shadow:0 12px 25px rgba(236,99,38,.17)!important;}
#yni-site .yni-direct-trigger{cursor:pointer!important;}
/* 5. Contact direct — volet élégant, accessible au clavier. */
#yni-contact-direct:not([open]){display:none!important;}
#yni-contact-direct{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;border:0!important;background:transparent!important;padding:0!important;margin:0!important;z-index:9999999!important;overflow:auto!important;}
#yni-contact-direct::backdrop{background:rgba(15,17,20,.65);backdrop-filter:blur(6px);}
#yni-contact-direct .yni-direct-panel{width:min(520px,calc(100% - 34px));box-sizing:border-box;padding:38px;background:#fff9f5;border:1px solid #e7c5ac;border-radius:24px;box-shadow:0 35px 120px rgba(0,0,0,.3);margin:max(12vh,70px) auto;color:#25272c;position:relative;}
#yni-contact-direct .yni-direct-close{position:absolute;top:15px;right:16px;display:grid;place-items:center;width:41px;height:41px;background:#fff;border:1px solid #edd5c1;border-radius:100%;font-size:22px;cursor:pointer;color:#25272c;}
#yni-contact-direct h2{font:800 clamp(25px,3vw,34px)/1.2 Montserrat,sans-serif;color:#22242b;margin:6px 0 12px;}
#yni-contact-direct .yni-direct-kicker{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#bd5221;font-weight:800;}
#yni-contact-direct p{font-size:15px;line-height:1.6;color:#51545a;margin:0 0 20px;}
#yni-contact-direct .yni-direct-links{display:grid;gap:11px;}
#yni-contact-direct .yni-direct-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 19px;border-radius:13px;border:1px solid #eee0d5;background:#fff;color:#25272c;text-decoration:none;font-weight:750;transition:background .2s,border-color .2s,transform .2s;}
#yni-contact-direct .yni-direct-links a:hover{border-color:#fb762e;background:#fff0e5;transform:translateX(3px);}
#yni-contact-direct .yni-direct-links a:first-child{background:#fb762e;color:#141517;border-color:#fb762e;}
#yni-contact-direct :focus-visible{outline:3px solid #fb762e;outline-offset:3px;}
/* Page contact: le champ téléphone existe aussi pour les rappels, sans afficher d'adresse mail. */
#yni-site .yni-form #ynis-phone{width:100%;}
@media(min-width:980px){#yni-site .y107-fit-sticky{position:sticky!important;top:115px!important;}}
@media(max-width:979px){#yni-site .y107-fit-grid,#yni-site .y107-included-grid{grid-template-columns:1fr!important;gap:30px!important;}#yni-site .y107-fit-sticky{position:static!important;}#yni-site .y107-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;} }
@media(max-width:680px){#yni-site .y107-feature-grid{grid-template-columns:1fr!important;}#yni-site .y107-feature{min-height:0!important;}#yni-site .y107-next{flex-direction:column!important;align-items:flex-start!important;}#yni-site .y107-feature::before{height:116px!important;flex-basis:116px!important;}#yni-contact-direct .yni-direct-panel{padding:28px 20px;}}
@media(prefers-reduced-motion:reduce){#yni-site .y107-feature:hover,#yni-site .y107-feature .y107-feature-link:hover{transform:none!important;}}
/* Prevent isolated punctuation in the fit-section headlines. */
#yni-site .y107-fit-sticky .y107-section-title em{display:inline-block!important;white-space:nowrap!important;}
/* A light tracing effect on primary offer actions, without oversized orange rectangles. */
#yni-site .y107-hero-actions .yni-button,#yni-site .y107-next .yni-button{position:relative!important;overflow:hidden!important;}
#yni-site .y107-hero-actions .yni-button::after,#yni-site .y107-next .yni-button::after{content:'';position:absolute;left:-100%;top:0;height:100%;width:60%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.24),transparent);transform:skewX(-20deg);transition:left .55s ease;pointer-events:none;}
#yni-site .y107-hero-actions .yni-button:hover::after,#yni-site .y107-next .yni-button:hover::after{left:160%;}
@media(prefers-reduced-motion:reduce){#yni-site .y107-hero-actions .yni-button::after,#yni-site .y107-next .yni-button::after{display:none!important}}
