/* AlphaTesi EU STAGE 17 reference rollout — consolidated international-only CSS.
   Replaces eu-stage13.css, eu-stage14.css and eu-stage15.css on staging.
   Matched against Italy's contact-page.sass and service.sass.
   All selectors are constrained by data-eu-lang: Italian production unaffected. */
/* ALPHATESI EU STAGE 13 — isolated visual/navigation corrections, staging first */















/* Six review cards: three equal columns, two rows at desktop. */
body[data-eu-lang] .eu-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; align-items: stretch; }
body[data-eu-lang] .eu-review-grid .eu-review { min-width: 0; height: 100%; box-sizing: border-box; }
@media (max-width: 980px) { body[data-eu-lang] .eu-review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { body[data-eu-lang] .eu-review-grid { grid-template-columns: minmax(0,1fr); } }
/* Neutral universities — static, easy-to-replace array data, no misleading logos. */
body[data-eu-lang] #universities.eu13-universities { overflow: visible; }
body[data-eu-lang] #universities .eu13-university-grid {
  list-style: none;
  margin: 28px 0 10px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}
body[data-eu-lang] #universities .eu13-university-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-height: 88px;
  padding: 14px 16px;
  border: 1px solid rgba(94,71,64,.13);
  border-radius: 12px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 3px 12px rgba(37,25,21,.04);
  text-align: left;
  list-style: none;
  box-sizing: border-box;
}
body[data-eu-lang] #universities .eu13-university-country { font-size: 12px; font-weight: 600; color: #856157; }
body[data-eu-lang] #universities .eu13-university-name { font-size: 14px; line-height: 1.35; color: #2b2121; font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 1050px) { body[data-eu-lang] #universities .eu13-university-grid {grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width: 720px) { body[data-eu-lang] #universities .eu13-university-grid {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width: 450px) { body[data-eu-lang] #universities .eu13-university-grid {grid-template-columns:minmax(0,1fr);} }

/* Header: keep the language menu on the right, collapse navigation before overlap. */








/* Breadcrumb & inner-page clearance */
body[data-eu-lang] .eu14-breadcrumb {display:block; margin:0; padding:22px 0 18px; font-size:15px; line-height:1.45; color:#776966;}
body[data-eu-lang] .eu14-breadcrumb a {color:inherit;text-decoration:underline;text-underline-offset:3px;}
/* The Stage20 1440px paired screenshots show the international service headings 16.9px lower.
   Restore Italy breadcrumb clearance on desktop while retaining the mobile baseline. */
body[data-eu-lang] .eu14-breadcrumb--top {padding-top:clamp(98px,calc(8vw - 17px),133px);}
@media (max-width:1068px) {body[data-eu-lang] .eu14-breadcrumb--top {padding-top:clamp(115px,8vw,150px);}}
body[data-eu-lang] .eu14-service-detail {scroll-margin-top:110px; padding-top:0;}
/* Desktop contact H1 is 36.9px lower than Italy on Stage20; reduce wrapper padding, not H1 margin. */
body[data-eu-lang] #contacts.eu14-contacts {padding-top:clamp(77px,calc(8vw - 37px),108px);scroll-margin-top:105px;}
@media (max-width:1068px) {body[data-eu-lang] #contacts.eu14-contacts {padding-top:clamp(114px,8vw,145px);}}
body[data-eu-lang] .eu16-legal {padding:clamp(110px,8vw,140px) 0 75px;}
/* Form grids: original 2-column geometry and one uniform control size. */
body[data-eu-lang] {--eu-control-height:42px;--eu-control-radius:13px;--eu-control-border:#ead0c6;--eu-control-bg:#fffaf8;}
body[data-eu-lang] .two-col-input-group, body[data-eu-lang] .eu14-modal-form-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:18px;width:100%;align-items:start;}
body[data-eu-lang] .two-col-input-group > .input-group,body[data-eu-lang] .eu14-modal-form-row > .input-group {width:100%; min-width:0; max-width:none; box-sizing:border-box; margin:0;}
body[data-eu-lang] .form .input-group {min-width:0;box-sizing:border-box;}
body[data-eu-lang] .form .input-group > input:not([type=checkbox]):not([type=radio]):not([type=date]),
body[data-eu-lang] .form .input-group > select:not(.eu-phone-country),
body[data-eu-lang] .form .input-group > .nice-select,
body[data-eu-lang] .form .input-group > input[type=date],
body[data-eu-lang] .form .input-group > .date-input-picker {
  box-sizing:border-box;min-width:0;width:100%;height:var(--eu-control-height);min-height:var(--eu-control-height);max-height:var(--eu-control-height);
  border:1px solid var(--eu-control-border);border-radius:var(--eu-control-radius);
  background:var(--eu-control-bg);color:#302522;padding:0 15px;margin:0;
  font-family:inherit;font-size:16px;line-height:normal;vertical-align:middle;
}
body[data-eu-lang] .form .input-group > .nice-select {display:flex;align-items:center;}
body[data-eu-lang] .form .input-group > .nice-select .current {line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body[data-eu-lang] .form .input-group > .date-input-picker {display:flex;align-items:center;justify-content:space-between;gap:8px;}
body[data-eu-lang] .form .input-group > .date-input-picker span {line-height:1.3;min-width:0;}
body[data-eu-lang] .form .input-group > .date-input-picker svg {width:18px;height:18px;flex:none;}
body[data-eu-lang] .form .input-group > textarea {box-sizing:border-box;width:100%;max-width:100%;min-height:150px;height:auto; border:1px solid var(--eu-control-border);border-radius:var(--eu-control-radius);background:var(--eu-control-bg);color:#302522;padding:14px 16px;font:inherit;line-height:1.5;resize:vertical;}
body[data-eu-lang] .form .input-group > label {display:block;line-height:1.35;margin-bottom:8px;}
/* International phone: dynamic select is inserted adjacent to the input by eu-forms.js. */
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) {display:grid;grid-template-columns:126px minmax(0,1fr);gap:12px;align-items:end;min-width:0;width:100%;}
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > label,
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > .input-group-error {grid-column:1/-1;}
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > select.eu-phone-country,
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > input[type=tel] {
  box-sizing:border-box;width:100%;max-width:100%;min-width:0;height:var(--eu-control-height);min-height:var(--eu-control-height);max-height:var(--eu-control-height);
  border:1px solid var(--eu-control-border);border-radius:var(--eu-control-radius);background:var(--eu-control-bg);padding:0 12px;margin:0;
  color:#302522;font-family:inherit;font-size:16px;line-height:normal;align-self:stretch;
}
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > select.eu-phone-country {grid-column:1;min-width:0;}
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > input[type=tel] {grid-column:2;}
body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) > select.eu-phone-country:focus-visible {outline:2px solid #f83800;outline-offset:2px;}
/* On non-contact modals and service form, match the same geometry without changing JS IDs. */
body[data-eu-lang] .modal.form-modal > .form {box-sizing:border-box;max-width:min(94vw,950px);}
body[data-eu-lang] .modal.form-modal .input-group {min-width:0;}
body[data-eu-lang] .eu16-service-form .form {box-sizing:border-box;min-width:0;}
body[data-eu-lang] .eu16-service-form .form > .input-group {min-width:0;}
body[data-eu-lang] .eu16-service-form .form > .input-group.full-width {grid-column:1/-1;}
body[data-eu-lang] .eu16-service-form .form .submit-button {box-sizing:border-box;}
/* Contacts: restore Italy's named CSS grid areas (copy / form / channels). */
body[data-eu-lang] #contacts.eu14-contacts .contact-hero {display:grid;grid-template-areas:"copy form" "channels form";grid-template-columns:minmax(0,.9fr) minmax(560px,1.1fr);column-gap:clamp(36px,4vw,64px);row-gap:32px;align-content:start;align-items:start;}
body[data-eu-lang] #contacts.eu14-contacts .contact-hero > * {min-width:0;}
body[data-eu-lang] #contacts.eu14-contacts .contact-hero-copy {grid-area:copy;padding-top:28px;}
body[data-eu-lang] #contacts.eu14-contacts .eu14-contact-form-wrap {grid-area:form;min-width:0;max-width:100%;}
body[data-eu-lang] #contacts.eu14-contacts .contact-form-card {width:100%;max-width:100%;box-sizing:border-box;margin:0;}
body[data-eu-lang] #contacts.eu14-contacts .contact-channels {grid-area:channels;align-self:start;display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:480px;margin:0;}
body[data-eu-lang] #contacts.eu14-contacts .contact-channel {box-sizing:border-box;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;width:100%;min-height:80px;height:auto;padding:16px;border:1px solid #ead8d1;border-radius:14px;background:#fffaf8;text-align:left;}
body[data-eu-lang] #contacts.eu14-contacts .contact-channel-icon {display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;}
body[data-eu-lang] #contacts.eu14-contacts .contact-channel-icon svg {display:block;width:23px;height:23px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;}
body[data-eu-lang] #contacts.eu14-contacts .eu16-channel-copy {min-width:0;width:100%;display:flex;flex-direction:column;gap:4px;overflow-wrap:normal;}
body[data-eu-lang] #contacts.eu14-contacts .eu16-channel-copy strong {font-size:16px;line-height:1.3;overflow-wrap:anywhere;}
body[data-eu-lang] #contacts.eu14-contacts .eu16-channel-copy small {font-size:13px;line-height:1.4;}
body[data-eu-lang] #contacts.eu14-contacts .eu14-contact-links {display:flex;flex-direction:column;gap:9px;margin:22px 0;overflow-wrap:anywhere;}
body[data-eu-lang] #contacts.eu14-contacts .eu14-contact-links a {color:#b33b21;}
/* Service intro and editorial copy retain original Italy service.sass layout. */



body[data-eu-lang] .eu15-editorial-copy {max-width:1040px;}
body[data-eu-lang] .eu15-editorial-copy p {font-size:18px;line-height:1.7;margin:0 0 20px;}


/* Service banner: Italy's #service-banner > .container > div layout + WhatsApp, no duplicate orange panel. */














/* Price-table structure mirrors .it #price .price-table two-column grid. */









/* Legal documents: visual typography; drafts intentionally still blocked from publication. */
body[data-eu-lang] .eu16-legal .container {max-width:950px;margin:0 auto;}
body[data-eu-lang] .eu16-legal h1 {font-size:clamp(32px,3vw,44px);line-height:1.15;margin:0 0 22px;}
body[data-eu-lang] .eu16-legal .eu16-legal-draft {padding:12px 16px;margin:0 0 32px;border-left:4px solid #ed622c;background:#fff5f0;font-size:14px;line-height:1.5;}
body[data-eu-lang] .eu16-legal .eu-legal-copy {max-width:900px;color:#382d2a;font-size:16px;line-height:1.72;overflow-wrap:break-word;}
body[data-eu-lang] .eu16-legal .eu-legal-copy > h1:first-child {display:none;}
body[data-eu-lang] .eu16-legal .eu-legal-copy h2 {font-size:clamp(23px,2vw,28px);font-weight:700;line-height:1.32;margin:36px 0 16px;}
body[data-eu-lang] .eu16-legal .eu-legal-copy h3 {font-size:clamp(19px,1.6vw,22px);line-height:1.35;margin:26px 0 12px;}
body[data-eu-lang] .eu16-legal .eu-legal-copy p {margin:0 0 18px;line-height:1.72;}
body[data-eu-lang] .eu16-legal .eu-legal-copy ul,body[data-eu-lang] .eu16-legal .eu-legal-copy ol {margin:12px 0 24px;padding-left:28px;list-style:revert;}
body[data-eu-lang] .eu16-legal .eu-legal-copy li {margin:0 0 9px;line-height:1.6;}
body[data-eu-lang] .eu16-legal .eu-legal-copy a {color:#ba3d20;text-decoration:underline;text-underline-offset:3px;}
body[data-eu-lang] .eu16-legal .eu-legal-copy table {border-collapse:collapse;display:block;max-width:100%;overflow-x:auto;margin:24px 0;}
body[data-eu-lang] .eu16-legal .eu-legal-copy th,body[data-eu-lang] .eu16-legal .eu-legal-copy td {border:1px solid #e2c9bf;padding:10px 14px;text-align:left;}
body[data-eu-lang] .eu16-legal .eu-legal-copy hr {margin:32px 0;border:0;border-top:1px solid #d9c7bf;}

@media(max-width:1068px){
 body[data-eu-lang] #contacts.eu14-contacts .contact-hero {grid-template-areas:"copy" "form" "channels";grid-template-columns:minmax(0,1fr);row-gap:32px;}
 body[data-eu-lang] #contacts.eu14-contacts .contact-hero-copy {padding-top:0;}
 body[data-eu-lang] #contacts.eu14-contacts .contact-channels {max-width:100%;}
 
}
@media(max-width:812px){
 body[data-eu-lang] .two-col-input-group,body[data-eu-lang] .eu14-modal-form-row {grid-template-columns:1fr;gap:16px;}
 
 
 
}
@media(max-width:576px){
 body[data-eu-lang] #contacts.eu14-contacts {padding-top:105px;}
 body[data-eu-lang] #contacts.eu14-contacts .contact-channels {max-width:100%;}
 body[data-eu-lang] .form .input-group:has(> select.eu-phone-country) {grid-template-columns:115px minmax(0,1fr);gap:8px;}
 
 
 
 body[data-eu-lang] .eu16-legal .container {padding:0 18px;}
}

/* Stage17 - single compact language control in header. All route hrefs remain controller supplied. */
body[data-eu-lang] header .eu17-language-switcher {display:inline-flex;align-items:center;flex:0 0 auto;position:relative;margin:0;padding:0;background:transparent;z-index:120;}
body[data-eu-lang] header .eu17-language-dropdown {position:relative;color:#fff;font-family:inherit;}
body[data-eu-lang] header .eu17-language-dropdown summary {display:inline-flex;align-items:center;justify-content:center;gap:7px;list-style:none;cursor:pointer;color:#fff;font-size:13px;font-weight:600;border:1px solid transparent;border-radius:7px;padding:8px 9px;line-height:1;background:transparent;white-space:nowrap;user-select:none;}
body[data-eu-lang] header .eu17-language-dropdown summary::-webkit-details-marker {display:none;}
body[data-eu-lang] header .eu17-language-dropdown[open] summary,body[data-eu-lang] header .eu17-language-dropdown summary:hover {background:rgba(255,255,255,.10);}
body[data-eu-lang] header .eu17-language-dropdown summary:focus-visible {outline:2px solid #fff;outline-offset:3px;}
body[data-eu-lang] header .eu17-language-dropdown[open] summary svg {transform:rotate(180deg);}
body[data-eu-lang] header .eu17-language-options {position:absolute;right:0;top:calc(100% + 10px);min-width:165px;background:#fffaf8;border:1px solid #ebd9d0;border-radius:10px;padding:6px;box-shadow:0 12px 30px rgba(0,0,0,.20);display:flex;flex-direction:column;gap:2px;z-index:1000;}
body[data-eu-lang] header .eu17-language-options a {display:flex;gap:10px;align-items:center;color:#302522!important;text-decoration:none;font-weight:500;font-size:14px;border-radius:6px;padding:9px 10px;white-space:nowrap;}
body[data-eu-lang] header .eu17-language-options a:hover,body[data-eu-lang] header .eu17-language-options a:focus-visible,body[data-eu-lang] header .eu17-language-options a[aria-current=page] {background:#f4e8e2;color:#b43618!important;}
/* The international phone controls are siblings within one .input-group.
   row-gap 0 is CRITICAL: earlier 12px grid gap added to label margin caused misalignment. */
body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) {display:grid;grid-template-columns:126px minmax(0,1fr);column-gap:12px;row-gap:0;align-content:start;align-items:stretch;}
body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) > label {grid-column:1/-1;grid-row:1;margin:0 0 8px;min-height:0;}
body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) > select.eu-phone-country {grid-column:1;grid-row:2;margin:0;width:100%;align-self:stretch;min-width:0;}
body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) > input[type=tel] {grid-column:2;grid-row:2;margin:0;width:100%;min-width:0;align-self:stretch;}
body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) > .input-group-error {grid-row:3;grid-column:1/-1;}
body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) > :is(select.eu-phone-country,input[type=tel]) {height:42px;min-height:42px;max-height:42px;border-radius:var(--eu-control-radius);border:1px solid var(--eu-control-border);background:var(--eu-control-bg);font:inherit;font-size:16px;padding:0 12px;box-sizing:border-box;}
/* Staged visual parity: Italian .service-text and body typography, full detail sections. */
















/* Banner: preserve original three regions, but use non-overlapping grid slots. */









@media(max-width:700px){
 
 
 
 body[data-eu-lang] header .eu17-language-dropdown summary {padding:7px 5px;font-size:12px;}
 body[data-eu-lang] .form .input-group:has(>select.eu-phone-country) {grid-template-columns:112px minmax(0,1fr);column-gap:8px;}
}

/* === Stage 19A: verified Stage 18 browser issues; scoped to international staging === */
/* Header: remove two secondary links before the ES call button can intersect them. */

/* Language list is moved to document.body when open to escape header clipping / stacking. */
body[data-eu-lang] > .eu19-language-portal {
  position:fixed!important; z-index:2147483000!important; display:flex!important;
  flex-direction:column; gap:2px; padding:6px; width:190px; max-width:calc(100vw - 16px);
  box-sizing:border-box; background:#fffaf8; color:#302522; border:1px solid #ebd9d0;
  border-radius:10px; box-shadow:0 12px 30px rgba(0,0,0,.24);
}
body[data-eu-lang] > .eu19-language-portal > a {
  display:flex; align-items:center; gap:10px; color:#302522!important; font:500 14px/1.35 Inter,sans-serif;
  text-decoration:none; border-radius:6px; padding:9px 10px; white-space:nowrap;
}
body[data-eu-lang] > .eu19-language-portal > a:hover,
body[data-eu-lang] > .eu19-language-portal > a:focus-visible,
body[data-eu-lang] > .eu19-language-portal > a[aria-current="page"] {background:#f4e8e2;color:#b43618!important;}
/* Consistent, accessible, scrolling country list in all browsers. Native select stays in form. */
body[data-eu-lang] .input-group.eu19-phone-enhanced {position:relative;}
body[data-eu-lang] .form .input-group.eu19-phone-enhanced > select.eu-phone-country {display:none!important;}
body[data-eu-lang] .form .input-group.eu19-phone-enhanced > button.eu19-phone-trigger {
  grid-column:1; grid-row:2; display:flex; align-items:center; justify-content:space-between;
  gap:4px; width:100%; min-width:0; height:42px; min-height:42px; box-sizing:border-box;
  margin:0; padding:0 10px; border:1px solid var(--eu-control-border,#ead0c6);
  border-radius:var(--eu-control-radius,13px); color:#302522; background:var(--eu-control-bg,#fffaf8);
  font:500 14px/1.2 Inter,sans-serif; text-align:left; cursor:pointer;
}
body[data-eu-lang] .eu19-phone-trigger-label {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body[data-eu-lang] .eu19-phone-trigger svg {flex:0 0 12px;width:12px;height:12px;}
body[data-eu-lang] .eu19-phone-trigger:focus-visible {outline:2px solid #f83800;outline-offset:2px;}
body[data-eu-lang] > .eu19-phone-popup {
  position:fixed!important; z-index:2147483001!important; box-sizing:border-box;
  display:flex; flex-direction:column; max-height:min(304px,60vh); overflow-y:auto; overscroll-behavior:contain;
  background:#fffaf8; border:1px solid #ead0c6; border-radius:10px;
  box-shadow:0 12px 32px rgba(0,0,0,.23); padding:4px;
}
body[data-eu-lang] > .eu19-phone-popup[hidden] {display:none!important;}
body[data-eu-lang] > .eu19-phone-popup > button[role="option"] {
  display:block; flex:none; width:100%; padding:10px 12px; border:0; border-radius:6px;
  background:transparent; color:#302522; font:500 14px/1.35 Inter,sans-serif;
  text-align:left; white-space:nowrap; cursor:pointer;
}
body[data-eu-lang] > .eu19-phone-popup > button[role="option"]:hover,
body[data-eu-lang] > .eu19-phone-popup > button[role="option"]:focus-visible,
body[data-eu-lang] > .eu19-phone-popup > button[role="option"][aria-selected="true"] {
  background:#f4e8e2; color:#a53117; outline:none;
}
/* Stage18 measured .eu16-legal .container content-box width 390px plus 36px padding on 390px viewport. */
body[data-eu-lang] .eu16-legal > .container {width:100%;max-width:950px;box-sizing:border-box;min-width:0;}
body[data-eu-lang] .eu16-legal .eu-legal-copy {min-width:0;max-width:100%;overflow-wrap:anywhere;}
/* Some legacy pages still apply niceSelect to dynamically discovered selects. */
body[data-eu-lang] .input-group.eu19-phone-enhanced > .nice-select {display:none!important;}

/* === Stage 19B: service geometry translated directly from alphatesi.it/resources/sass/web/service.sass ===
   This block intentionally supersedes obsolete Stage13-17 EU service rules removed at build time.
   The Italian CSS is still compiled and loaded through @vite; never change production files. */
body[data-eu-lang] #service.eu19b-parity-detail { margin-bottom:100px; }
body[data-eu-lang] #service.eu19b-parity-detail .service-heading-cta { margin:0 0 32px; }
body[data-eu-lang] #service.eu19b-parity-detail .service-text {
  display:grid; grid-template-columns:minmax(0,1fr) 380px; column-gap:120px; align-items:stretch;
}
body[data-eu-lang] #service.eu19b-parity-detail .service-text > img {
  display:block; width:100%; height:100%; max-width:100%; min-width:0;
  border-radius:12px; object-fit:cover;
}
body[data-eu-lang] #service.eu19b-parity-detail .eu19b-service-copy { min-width:0; max-width:none; }
body[data-eu-lang] #service.eu19b-parity-detail .eu19b-service-copy p { margin:0 0 16px; }
body[data-eu-lang] #service.eu19b-parity-detail .eu19b-service-copy strong {
  font-weight:700; /* keep the font size and line-height of the original .h5.medium */
}
body[data-eu-lang] #service-extra.eu19b-parity-extra {margin-bottom:80px;}
body[data-eu-lang] #service-extra.eu19b-parity-extra ul {
  list-style-type:disc; list-style-position:inside; margin-bottom:16px; padding-left:0;
}
body[data-eu-lang] #service-extra.eu19b-parity-extra li { margin:0 0 8px; }
body[data-eu-lang] #service-extra.eu19b-parity-extra p { margin:0 0 16px; }
body[data-eu-lang] #how-we-work.eu19b-parity-steps {margin-bottom:80px;}
body[data-eu-lang] #how-we-work.eu19b-parity-steps .how-we-work-steps:last-child {margin-bottom:0;}
body[data-eu-lang] #price.eu19b-parity-price {margin-bottom:100px;}
body[data-eu-lang] #price.eu19b-parity-price .price-table {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:750px;
  width:100%; margin:0 auto; overflow:visible; border:0; background:transparent;
}
body[data-eu-lang] #price.eu19b-parity-price .price-table > div {
  text-align:center; box-sizing:border-box; min-width:0; padding:24px 0;
  border-bottom:1px solid #f83800; background:transparent;
}
body[data-eu-lang] #price.eu19b-parity-price .price-table > div:nth-child(2n/**/+1) {
  border-right:1px solid #f83800; text-transform:uppercase;
}
body[data-eu-lang] #price.eu19b-parity-price .price-table > div:nth-child(2n/**/+2) {
  display:flex; align-items:center; justify-content:center; color:#f83800;
}
body[data-eu-lang] #price.eu19b-parity-price .price-table > div:nth-last-child(-n/**/+2) {border-bottom:0;}
/* Original Italian banner proportions: orange block 32px × 48px, radius 12px,
   200px-high anchored portrait. Reserve the picture footprint to avoid WhatsApp overlap. */
body[data-eu-lang] #service-banner.eu16-service-banner {margin-bottom:100px; background:transparent; overflow:visible;}
body[data-eu-lang] #service-banner.eu16-service-banner > .container {overflow:visible;}
body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner {
  box-sizing:border-box; width:100%; padding:32px 48px; border-radius:12px;
  display:flex; align-items:center; position:relative; gap:16px;
  background:#f83800; min-height:0;
}
body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner:before {content:""; flex:0 0 170px;}
body[data-eu-lang] #service-banner.eu16-service-banner .service-banner-img {
  position:absolute; bottom:0; left:6px; display:flex; z-index:1;
}
body[data-eu-lang] #service-banner.eu16-service-banner .service-banner-img img {
  display:block; height:200px; width:auto; max-width:none; object-fit:contain;
}
body[data-eu-lang] #service-banner.eu16-service-banner .socials {
  display:flex; flex-direction:column; align-items:center; margin:0 auto; z-index:2; min-width:0;
}
body[data-eu-lang] #service-banner.eu16-service-banner .socials .h3 {
  color:#fff; text-align:center; margin-bottom:16px;
}
body[data-eu-lang] #service-banner.eu16-service-banner .socials .eu16-banner-links {
  display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;
}
body[data-eu-lang] #service-banner.eu16-service-banner .socials a {
  color:#fff; text-decoration:none; display:flex; align-items:center; gap:6px; overflow-wrap:anywhere;
}
body[data-eu-lang] #service-banner.eu16-service-banner .socials a svg {width:32px; height:32px; flex:0 0 32px;}
body[data-eu-lang] #service-banner.eu16-service-banner .socials svg .fill-color {fill:#fff;}
body[data-eu-lang] #service-banner.eu16-service-banner .consultation {
  display:flex; align-items:center; gap:16px; z-index:2; min-width:0; flex:0 1 auto;
}
body[data-eu-lang] #service-banner.eu16-service-banner .consultation .h3 {color:#fff; text-align:center;}
body[data-eu-lang] #service-banner.eu16-service-banner .consultation .button-style.white-style {
  background:#fff; color:#f83800; max-width:260px; padding:14px 20px;
  white-space:normal; flex:0 0 auto;
}
@media screen and (max-width:1440px) {
  body[data-eu-lang] #service-banner.eu16-service-banner .service-banner-img {left:-20px;}
}
@media screen and (max-width:1264px) {
  body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner {
    flex-direction:column; gap:24px; padding-left:200px;
  }
  body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner:before {display:none;}
  body[data-eu-lang] #service-banner.eu16-service-banner .socials {margin:0;}
}
@media screen and (max-width:1068px) {
  body[data-eu-lang] #service.eu19b-parity-detail .service-text {
    grid-template-columns:minmax(0,1fr); row-gap:24px;
  }
  body[data-eu-lang] #service.eu19b-parity-detail .service-text > img {
    grid-row-start:1; max-height:360px; height:auto; object-fit:cover;
  }
}
@media screen and (max-width:812px) {
  body[data-eu-lang] #service.eu19b-parity-detail,
  body[data-eu-lang] #service-extra.eu19b-parity-extra,
  body[data-eu-lang] #how-we-work.eu19b-parity-steps,
  body[data-eu-lang] #price.eu19b-parity-price,
  body[data-eu-lang] #service-banner.eu16-service-banner {margin-bottom:64px;}
  body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner {gap:32px;}
  body[data-eu-lang] #service-banner.eu16-service-banner .consultation {flex-direction:column;}
}
@media screen and (max-width:700px) {
  body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner {padding:24px 16px;}
  body[data-eu-lang] #service-banner.eu16-service-banner .service-banner-img {display:none;}
  body[data-eu-lang] #service-banner.eu16-service-banner .consultation,
  body[data-eu-lang] #service-banner.eu16-service-banner .socials {width:100%;}
}
@media screen and (max-width:576px) {
  body[data-eu-lang] #service-banner.eu16-service-banner .eu16-banner-inner {padding:24px 12px;}
  body[data-eu-lang] #price.eu19b-parity-price .price-table > div {padding:24px 6px;}
}

/* === Stage 21: measured Italian parity and modal/cookie coordination ===
   Stage20 measurements: ordinary Italy controls are 42px, EU were 52px.
   Original IT services-form textarea is 158px; country prefix keeps same height. */
body[data-eu-lang] #services-form .input-group > textarea {min-height:158px;height:158px;}
/* Stage20 modal screenshot: the original contact form was visible through the modal card.
   Preserve the modal's existing geometry but make its surface fully opaque. */
body[data-eu-lang] .modal.form-modal.visible > .form {
  background-color:#eee2dc!important; background-image:none!important; opacity:1!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important; isolation:isolate;
}
/* The cookie panel stays available after dialog closes; while a booking/feedback dialog
   is open, temporarily hide ONLY its visual layer. No consent signals are changed. */
body[data-eu-lang]:has(.modal.form-modal.visible) #alpha-consent-v2:not([hidden]) {
  visibility:hidden!important; pointer-events:none!important;
}


/* === Stage 22: Header parity with alphatesi.it ===
   Single authoritative EN/ES header navigation layout. Removes all older EU
   overrides for link font sizes, space-evenly and hide/show breakpoints.
   Italian production styles remain owned by the @vite app.sass bundle.
   The Stage19A fixed portal for language options is untouched. */
body[data-eu-lang] header > .container {
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:12px;
  min-width:0;
  box-sizing:border-box;
}
body[data-eu-lang] header .header-contacts {
  margin-left:26px;
  margin-right:0;
  gap:12px;
  flex:0 0 auto;
  white-space:nowrap;
}
body[data-eu-lang] header .header-whatsapp-link {margin-right:12px;}
body[data-eu-lang] header .header-links {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:1 1 auto;
  min-width:0;
  gap:16px;
  flex-wrap:nowrap;
  margin:0;
}
body[data-eu-lang] header .header-links > a {
  font-family:Inter,sans-serif;
  font-size:14px;
  line-height:20px;
  font-weight:600;
  letter-spacing:normal;
  text-transform:none;
  white-space:nowrap;
  width:auto;
  min-width:0;
  flex:0 0 auto;
  margin:0;
}
body[data-eu-lang] header .header-buttons.eu13-header-actions {
  display:flex;
  align-items:center;
  flex:0 0 auto;
  flex-wrap:nowrap;
  gap:12px;
  margin-left:0;
  white-space:nowrap;
  min-width:max-content;
}
body[data-eu-lang] header .header-buttons.eu13-header-actions > .book-a-call-link {
  flex:0 0 auto;
  white-space:nowrap;
}
body[data-eu-lang] header .eu17-language-switcher {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  background:transparent;
  margin:0;
  padding:0;
  position:relative;
  z-index:120;
}
/* Breakpoints preserve the Italian font size. Only content visibility changes. */
@media (max-width:1720px) {
 body[data-eu-lang] header .header-contacts {margin-left:14px;gap:10px;}
 body[data-eu-lang] header .header-whatsapp-link {margin-right:0;}
 body[data-eu-lang] header .header-links > a:nth-child(4) {display:none!important;} /* Blog stays visible */
}
@media (max-width:1500px) {
 body[data-eu-lang] header .header-links > a:nth-child(3) {display:none!important;}
}
@media (max-width:1370px) {
 body[data-eu-lang] header .header-email-link {display:none!important;}
}
@media (max-width:1280px) {
 body[data-eu-lang] header .header-links {display:none!important;}
 body[data-eu-lang] header .header-buttons.eu13-header-actions {margin-left:auto;}
}
@media (max-width:992px) {
 body[data-eu-lang] header .header-contact-text {display:none!important;}
 body[data-eu-lang] header .header-email-link {display:none!important;}
 body[data-eu-lang] header .header-contacts {gap:8px;margin-left:10px;}
}
@media (max-width:700px) {
 body[data-eu-lang] header .header-buttons.eu13-header-actions > .book-a-call-link {display:none!important;}
 body[data-eu-lang] header > .container {gap:8px;}
 body[data-eu-lang] header .header-buttons.eu13-header-actions {gap:8px;}
}

/* Stage 30D: Spanish header email fit */
@media (max-width:1720px) {
  body[data-eu-lang="es"] header .header-email-link { display:none!important; }
}

/* Stage 25: individual transparent clips of the Italian payment artwork.
   Deliberately omit the third (PayPal) icon and service logos. */
body[data-eu-lang] footer .footer-policy .eu25-payment-logos {
  display:flex;align-items:center;gap:5px;max-width:100%;width:max-content;
  height:46px;overflow:visible;
}
body[data-eu-lang] footer .footer-policy .eu25-payment-logo {
  position:relative;display:block;overflow:hidden;
  width:43px;height:44px;flex:0 0 43px;
}
body[data-eu-lang] footer .footer-policy .eu25-payment-logo img {
  display:block;position:absolute;top:50%;width:500px!important;
  max-width:none!important;height:auto!important;min-width:500px!important;
  margin:0!important;transform:translateY(-50%);filter:none!important;
}
body[data-eu-lang] footer .footer-policy .eu25-visa img {left:-138px;}
body[data-eu-lang] footer .footer-policy .eu25-mastercard img {left:-185px;}
body[data-eu-lang] footer .footer-policy .eu25-stripe img {left:-280px;}
body[data-eu-lang] footer .footer-policy .eu25-revolut img {left:-328px;}
body[data-eu-lang] footer .footer-policy .eu24-review-widget {
  display:flex;justify-content:center;align-items:center;
  margin-top:21px;
}
body[data-eu-lang] footer .footer-policy a.eu24-trustpilot-review {
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  color:#151515!important;background:#fff;border:1px solid #00b67a;
  border-radius:9px;padding:9px 11px;text-decoration:none!important;
  font-family:Inter,sans-serif;font-weight:500;font-size:15px;line-height:24px;
  max-width:100%;min-height:45px;box-sizing:border-box;
  white-space:normal;text-align:center;
}
body[data-eu-lang] footer .footer-policy a.eu24-trustpilot-review:hover,
body[data-eu-lang] footer .footer-policy a.eu24-trustpilot-review:focus-visible {
  outline:2px solid #00b67a;outline-offset:2px;
}
body[data-eu-lang] footer .footer-policy .eu24-trustpilot-brand {
  display:inline-flex;align-items:center;gap:2px;white-space:nowrap;font-weight:600;
}
body[data-eu-lang] footer .footer-policy .eu24-trustpilot-brand svg {
  display:block;width:21px;height:21px;flex:0 0 21px;
}
body[data-eu-lang] footer .footer-policy > div:nth-child(2) {min-width:0;}
body[data-eu-lang] footer .footer-policy > div:nth-child(2) > div:first-child {height:auto;min-height:44px;}
body[data-eu-lang] footer .footer-policy a.eu23-footer-blog {display:inline-flex;}
body[data-eu-lang] #about-us {scroll-margin-top:calc(54px + 28px);}
@media(max-width:700px){
  body[data-eu-lang] footer .footer-policy .eu24-review-widget {margin-top:16px;}
  body[data-eu-lang] footer .footer-policy a.eu24-trustpilot-review {font-size:13px;padding:8px 9px;}
}
/* Actual Privacy checkbox must not touch the last phone control.
   Apply to contact, service and callback forms, not checkbox inputs themselves. */
body[data-eu-lang] #contacts-form .checkbox-input-group,
body[data-eu-lang] #services-form .checkbox-input-group,
body[data-eu-lang] .modal.form-modal .checkbox-input-group,
body[data-eu-lang] .eu16-service-form .checkbox-input-group {
  margin-top:20px!important;
}
body[data-eu-lang] #contacts-form .checkbox-input-group .custom-checkbox,
body[data-eu-lang] #services-form .checkbox-input-group .custom-checkbox,
body[data-eu-lang] .modal.form-modal .checkbox-input-group .custom-checkbox {
  line-height:1.45;
}

/* Stage 28: language switcher text to white on mobile/header */
.language-dropdown .dropdown-toggle,
.language-dropdown .dropdown-toggle span,
.language-dropdown .dropdown-toggle strong,
.language-dropdown .dropdown-toggle b,
.language-switcher .dropdown-toggle,
.language-switcher .dropdown-toggle span,
.header-language .dropdown-toggle,
.header-language .dropdown-toggle span,
.mobile-language .dropdown-toggle,
.mobile-language .dropdown-toggle span {
  color: #ffffff !important;
}

.language-dropdown .dropdown-toggle::after,
.language-switcher .dropdown-toggle::after,
.header-language .dropdown-toggle::after,
.mobile-language .dropdown-toggle::after {
  color: #ffffff !important;
  border-top-color: #ffffff !important;
}

.language-dropdown .dropdown-menu a,
.language-switcher .dropdown-menu a,
.header-language .dropdown-menu a,
.mobile-language .dropdown-menu a {
  color: inherit;
}

/* EU_STAGE27B_FORM_SPACING: contact form row spacing, EN/ES desktop only. */
@media (min-width: 769px) {
  body[data-eu-lang] #contacts .two-col-input-group {
    row-gap: 24px !important;
    margin-bottom: 14px !important;
  }
}

/* EU_STAGE28_HEADER_LANGUAGE_WHITE: only the closed language switch button; do not affect dropdown options. */
body[data-eu-lang] header .eu17-language-dropdown > summary,
body[data-eu-lang] header .eu17-language-dropdown > summary * {
  color: #fff !important;
}

/* EU_STAGE28_ES_DISCOUNT_ALIGNMENT: Italian grid unchanged; fit longer Spanish headings. */
body[data-eu-lang="es"] #discounts .discounts-points > div > .h1 {
  font-size: clamp(30px, 2.4vw, 44px);
  white-space: nowrap;
}
@media (max-width: 1068px) {
  body[data-eu-lang="es"] #discounts .discounts-points > div > .h1 {
    font-size: clamp(26px, 5.5vw, 40px);
  }
}

/* Native EU date input replaces the custom visual picker; suppress its old label. */
body[data-eu-lang] .input-group-picker.default > .date-input-picker {display:none!important;}


/* SVG flags stay crisp and consistent across browser emoji fonts. */
body[data-eu-lang] .eu17-language-flag { display:block; width:20px; height:15px; flex:0 0 20px; object-fit:cover; border-radius:2px; }

/* Visual recovery: keep public layouts intact if Slick's CDN script is unavailable. */
body[data-eu-lang] #legal-documents.slick-documents:not(.slick-initialized) {
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:16px;
}
body[data-eu-lang] #legal-documents.slick-documents:not(.slick-initialized)>div {min-width:0;width:auto!important;}
body[data-eu-lang] #legal-documents.slick-documents:not(.slick-initialized) .document {width:100%;height:100%;margin:0;box-sizing:border-box;}
body[data-eu-lang] #legal-documents.slick-documents:not(.slick-initialized) .document img {display:block;width:100%;height:auto;object-fit:cover;}
@media(max-width:980px) {body[data-eu-lang] #legal-documents.slick-documents:not(.slick-initialized) {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px) {body[data-eu-lang] #legal-documents.slick-documents:not(.slick-initialized) {grid-template-columns:minmax(0,1fr);}}

body[data-eu-lang] #deadlines .deadlines-row:not(.slick-initialized) {
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:stretch;
  gap:18px;
  width:100%;
  overflow:visible;
}
body[data-eu-lang] #deadlines .deadlines-row:not(.slick-initialized)>div {min-width:0;width:auto!important;}
body[data-eu-lang] #deadlines .deadlines-row:not(.slick-initialized) .deadlines-row-col {height:100%;box-sizing:border-box;}
@media(max-width:1068px) {body[data-eu-lang] #deadlines .deadlines-row:not(.slick-initialized) {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px) {body[data-eu-lang] #deadlines .deadlines-row:not(.slick-initialized) {grid-template-columns:minmax(0,1fr);}}

body[data-eu-lang] .eu13-university-country {display:inline-flex;align-items:center;gap:6px;}
body[data-eu-lang] .eu13-university-country img {display:block;width:18px;height:14px;flex:none;object-fit:cover;border:1px solid rgba(43,33,33,.12);border-radius:2px;}
body[data-eu-lang] .form .input-group > .nice-select.eu-phone-country {grid-column:1;width:100%;max-width:none;min-width:0;min-height:var(--eu-control-height);height:var(--eu-control-height);padding:0 28px 0 12px;box-sizing:border-box;}
body[data-eu-lang] .form .input-group > .nice-select.eu-phone-country .current {display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;}
body[data-eu-lang] .nice-select.eu-phone-country .list {min-width:190px;width:max-content;max-width:min(320px,calc(100vw - 32px));max-height:min(280px,55vh);overflow-y:auto;}
body[data-eu-lang] .nice-select.eu-phone-country .option {display:flex;align-items:center;min-height:36px;padding:8px 12px;white-space:nowrap;}
.eu-phone-option {display:inline-flex;align-items:center;gap:8px;min-width:0;line-height:1.2;}
.eu-phone-flag {display:block;width:20px;height:15px;flex:none;object-fit:cover;border:1px solid rgba(43,33,33,.12);border-radius:2px;}
.eu-phone-other-icon {display:inline-flex;align-items:center;justify-content:center;width:20px;height:15px;flex:none;border:1px solid #c9b9b2;border-radius:2px;font-weight:700;line-height:1;}

/* If AOS does not load, its initial hidden state must not hide content. */
body:not(.eu-aos-active) [data-aos] {opacity:1!important;transform:none!important;pointer-events:auto!important;}

/* Header reflow: retain email on desktop and shorten Spanish navigation before overlap. */
@media(max-width:1720px) {
  body[data-eu-lang] header .header-email-link {display:flex!important;}
  body[data-eu-lang="es"] header .header-links > a:nth-child(3) {display:none!important;}
}
@media(max-width:1440px) {
  body[data-eu-lang] header .header-links {display:none!important;}
  body[data-eu-lang] header .header-buttons.eu13-header-actions {margin-left:auto;}
}
@media(max-width:992px) {
  body[data-eu-lang] header .header-email-link {display:none!important;}
}
