:root{--akr:#0b8aa3;--akr-dark:#087188;--akr-calculator:#c62828;--akr-success:#18794e;--akr-error:#b42318;--akr-warning:#8a5a00;--akr-text:#171717;--akr-muted:#70777b;--akr-line:#dde4e7;--akr-soft:#f5f8f9;--akr-white:#fff;--akr-page:#f4f6f7}

/* Full-width feel. JS centers this against the VIEWPORT, not against the theme's narrow content column. */
.akram-registration{position:relative;left:auto;transform:none;width:min(calc(100vw - 156px),1420px);max-width:none;margin:18px 0 38px;color:var(--akr-text);box-sizing:border-box}
.akram-registration-shell{background:var(--akr-white);border:1px solid var(--akr-line);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.045);overflow:hidden}

.akram-registration-topbar{padding:22px 28px;border-bottom:1px solid var(--akr-line);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.akram-registration-title h1{margin:0 0 4px;font-size:26px;line-height:1.15;font-weight:750}
.akram-registration-title p{margin:0;color:var(--akr-muted);font-size:13px;letter-spacing:.01em}
.akram-registration-login{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--akr-muted)}
.akram-registration-login a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border-radius:6px;background:var(--akr);color:#fff!important;font-weight:800;text-decoration:none!important}
.akram-registration-login a:hover{background:var(--akr-dark)}

/* Slim reassurance banner replaces the old tall right column. */
.akram-benefits-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--akr-soft);border-bottom:1px solid var(--akr-line)}
.akram-benefits-strip>div{padding:13px 18px;border-right:1px solid #e4ecef;min-width:0}
.akram-benefits-strip>div:last-child{border-right:0}
.akram-benefits-strip strong{display:block;font-size:12px;line-height:1.25;margin-bottom:3px;color:#20282c}
.akram-benefits-strip span{display:block;color:var(--akr-muted);font-size:11px;line-height:1.35}

.akram-registration-errors{margin:20px 28px 0}.akram-registration-errors ul{margin:0;padding-left:20px}
.akram-registration-form{padding:24px 28px 28px}

/* Account type is full width and visually immediate. */
.akram-account-type-block{max-width:820px;margin:0 auto 22px}
.akram-field-label,.akram-registration label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#292d30}
.akram-account-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#edf3f5;border:1px solid #d3dde0;border-radius:9px;padding:4px}
.akram-account-btn{min-height:48px;border:1px solid transparent;border-radius:7px;background:#fff;color:#252a2d;font-weight:800;cursor:pointer;transition:.12s ease}
.akram-account-btn.active{background:var(--akr);border-color:var(--akr);color:#fff;box-shadow:0 3px 10px rgba(11,138,163,.2)}

/* Two balanced sections keep the page short and easy to scan. */
.akram-registration-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.akram-registration-card{border:1px solid var(--akr-line);border-radius:10px;background:#fff;padding:22px}
.akram-registration-column{min-width:0}
.akram-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:13px;margin-bottom:16px;border-bottom:1px solid #edf1f2}
.akram-section-heading h2{margin:0;font-size:18px;line-height:1.2}
.akram-section-heading span{color:var(--akr-muted);font-size:11px;text-align:right}

.akram-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 14px}.akram-full{grid-column:1/-1}
.akram-business-only{display:none}
.akram-registration input,.akram-registration select{width:100%;height:44px;border:1px solid #ccd4d8;border-radius:5px;background:var(--akr-white);color:var(--akr-text);padding:0 11px;font-size:14px;outline:none;box-shadow:none}
.akram-registration input:focus,.akram-registration select:focus{border-color:var(--akr);box-shadow:0 0 0 2px rgba(11,138,163,.1)}
.akram-vat-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.akram-button{height:44px;border:0;border-radius:6px;padding:0 18px;background:var(--akr);color:#fff;font-weight:800;cursor:pointer}.akram-button:hover{background:var(--akr-dark)}
.akram-vies-status{min-height:18px;margin-top:6px;font-size:12px;font-weight:700}.akram-vies-status.success{color:var(--akr-success)}.akram-vies-status.error{color:var(--akr-error)}.akram-vies-status.warning{color:var(--akr-warning)}
.akram-divider{grid-column:1/-1;height:1px;background:#edf0f1;margin:3px 0}
.akram-help{font-size:11px;color:var(--akr-muted);margin-top:5px;line-height:1.35}
.akram-inline-check{display:flex!important;align-items:center;gap:8px;margin-top:9px!important;font-weight:400!important}.akram-inline-check input,.akram-clean-check input{width:18px!important;height:18px!important;margin:0!important;flex:0 0 auto}
#akram-profile-other-wrap,#akram-discovery-other-wrap{display:none}
#akram-address-autocomplete-host{display:none;margin-bottom:0;width:100%}
#akram-address-autocomplete-host gmp-place-autocomplete{display:block!important;width:100%!important;min-height:44px;color-scheme:light;background:#fff;color:#222;border:1px solid #ccd4d8;border-radius:5px;box-sizing:border-box}
.akram-google-fallback #akr-address{display:block!important}

/* Bottom: compact consent row, then centered CAPTCHA and centered action. */
.akram-registration-bottom{margin-top:20px;padding:18px;border:1px solid var(--akr-line);border-radius:10px;background:var(--akr-soft);display:flex;flex-direction:column;align-items:center;gap:16px}
.akram-registration-bottom-checks{width:100%;display:flex;align-items:stretch;justify-content:center;gap:10px;flex-wrap:wrap}
.akram-clean-check{width:auto;flex:0 0 auto;background:#fff;border:1px solid #e2e8ea;border-radius:7px;padding:11px 14px;min-height:46px;display:flex;align-items:center}
.akram-registration-bottom-checks .akram-clean-check:first-child{min-width:245px}
.akram-registration-bottom-checks .akram-clean-check:last-child{min-width:390px}
.akram-clean-check label{display:flex;align-items:flex-start;gap:8px;margin:0;font-weight:400;line-height:1.35}
.akram-registration-final-actions{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.akram-captcha{display:flex;justify-content:center;width:100%;padding:0;background:transparent}
.akram-submit{width:min(100%,440px);height:48px;font-size:15px}

/* Telephone fields: built-in country selector + live formatter. No external dependency. */
.akram-phone-combo{display:grid;grid-template-columns:138px minmax(0,1fr);gap:8px;align-items:center}
.akram-phone-combo .akram-phone-country{min-width:0;padding-left:8px;padding-right:6px;font-size:13px;font-variant-numeric:tabular-nums}
.akram-phone-combo input{min-width:0;font-variant-numeric:tabular-nums;letter-spacing:.015em}

/* Keep Electron/theme floating side controls outside the registration surface. */
.akram-registration{isolation:isolate}
@media(max-width:1050px){
  .akram-registration{width:min(calc(100vw - 112px),1180px)}
  .akram-benefits-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .akram-benefits-strip>div:nth-child(2){border-right:0}.akram-benefits-strip>div:nth-child(-n+2){border-bottom:1px solid #e4ecef}
}
@media(max-width:860px){
  .akram-registration-columns{grid-template-columns:1fr}
  .akram-account-type-block{max-width:none}
  .akram-registration-bottom-checks{width:100%}
  .akram-submit{width:min(100%,440px)}
}
@media(max-width:640px){
  .akram-registration{left:auto;transform:none;width:auto;margin:8px!important}
  .akram-registration-topbar{padding:18px}
  .akram-registration-title h1{font-size:22px}
  .akram-registration-login{width:100%;justify-content:space-between}.akram-registration-login a{min-width:105px}
  .akram-benefits-strip{grid-template-columns:1fr 1fr}
  .akram-benefits-strip>div{padding:11px 12px}
  .akram-registration-form{padding:14px}
  .akram-registration-card{padding:16px}
  .akram-section-heading{display:block}.akram-section-heading span{display:block;text-align:left;margin-top:3px}
  .akram-grid{grid-template-columns:1fr}.akram-full{grid-column:auto}
  .akram-vat-row{grid-template-columns:1fr}.akram-vies-button{width:100%}
  .akram-registration-bottom{padding:12px}
}


/* Theme wrapper compatibility: keep sizing predictable before JS viewport centering. */
.akram-registration,.akram-registration *{box-sizing:border-box}
html,body{max-width:100%}


/* Desktop width balance. */
@media(min-width:641px){
  .akram-registration{max-width:calc(100vw - 156px)!important}
}
@media(max-width:860px){
  .akram-registration-bottom-checks{width:100%;grid-template-columns:1fr}
}


/* Column and mobile balance. */
@media(min-width:861px){
  .akram-registration-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .akram-profile-on-right{margin-top:1px}
}
@media(max-width:760px){
  .akram-phone-combo{grid-template-columns:120px minmax(0,1fr)}
  .akram-registration-bottom-checks{flex-direction:column;align-items:stretch}
  .akram-registration-bottom-checks .akram-clean-check:first-child,
  .akram-registration-bottom-checks .akram-clean-check:last-child{min-width:0;width:100%}
}



/* Second phone stays hidden until the customer presses +. */
.akram-phone-secondary{display:none!important}
.akram-phone-secondary.is-open{display:block!important}

/* Consent alignment: the page center is the boundary between the two compact boxes. */
@media(min-width:761px){
  .akram-registration-bottom-checks{
    width:100%!important;display:grid!important;grid-template-columns:50% 50%!important;
    gap:0!important;align-items:center!important;justify-content:stretch!important
  }
  .akram-registration-bottom-checks .akram-clean-check{
    width:max-content!important;min-width:0!important;max-width:calc(100% - 12px)!important;flex:none!important
  }
  .akram-registration-bottom-checks .akram-clean-check:first-child{justify-self:end!important;margin-right:6px!important}
  .akram-registration-bottom-checks .akram-clean-check:last-child{justify-self:start!important;margin-left:6px!important}
}
.akram-captcha{display:flex!important;justify-content:center!important;align-items:center!important;width:100%!important;margin:0 auto!important}
.akram-captcha .g-recaptcha{margin-left:auto!important;margin-right:auto!important}
.akram-submit{display:block!important;margin-left:auto!important;margin-right:auto!important}


/* VIES status, colour country picker and Google Places widget. */
.akram-vies-status{display:flex!important;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:18px}
.akram-vies-line{display:inline-block;font-size:12px;font-weight:700;line-height:1.35}
.akram-vies-line.success{color:var(--akr-success)}
.akram-vies-line.error{color:var(--akr-error)}
.akram-vies-line.warning{color:var(--akr-warning)}

/* Phone country control uses a custom visible button so emoji flags render in colour reliably. */
.akram-phone-combo{grid-template-columns:112px minmax(0,1fr)!important;overflow:visible}
.akram-phone-country-picker{position:relative;width:112px;min-width:112px;z-index:20}
.akram-phone-country-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important}
.akram-phone-country-button{width:100%;height:44px;border:1px solid #ccd4d8;border-radius:5px;background:var(--akr-white);color:var(--akr-text);display:flex;align-items:center;justify-content:flex-start;gap:7px;padding:0 9px;cursor:pointer;font:inherit}
.akram-phone-country-button:hover,.akram-phone-country-picker.is-open .akram-phone-country-button{border-color:var(--akr);box-shadow:0 0 0 2px rgba(11,138,163,.08)}
.akram-phone-dial{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.akram-phone-chevron{margin-left:auto;color:#667178;font-size:12px}
.akram-phone-country-menu{display:none;position:absolute;left:0;top:calc(100% + 4px);width:220px;max-height:275px;overflow:auto;background:#fff;border:1px solid #ccd4d8;border-radius:7px;box-shadow:0 12px 28px rgba(0,0,0,.16);padding:5px;z-index:10080}
.akram-phone-country-picker.is-open .akram-phone-country-menu{display:block}
.akram-phone-country-option{width:100%;min-height:38px;border:0;background:#fff;color:#222;display:grid;grid-template-columns:30px 38px 1fr;align-items:center;gap:6px;padding:6px 8px;border-radius:5px;text-align:left;cursor:pointer;font:inherit}
.akram-phone-country-option:hover,.akram-phone-country-option.is-selected{background:#eef8fa}
.akram-phone-country-dial{font-size:12px;color:#5c666b;font-variant-numeric:tabular-nums}

/* Google PlaceAutocompleteElement (official Places API New widget). The native address input stays as fallback and form value. */
.akram-google-widget-host{display:none;width:100%;margin:0 0 0 0;position:relative;z-index:15}
.akram-google-widget-host.is-widget-ready{display:block!important}
.akram-google-widget-host gmp-place-autocomplete{display:block!important;width:100%!important;min-height:44px!important;background:#fff!important;color:#222!important;color-scheme:light!important;border:1px solid #ccd4d8!important;border-radius:5px!important;box-sizing:border-box!important}
#akr-address.akram-native-address-hidden{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.akram-google-status{margin-top:6px;font-size:11px;line-height:1.35;color:#687177}
.akram-google-status.is-error{color:var(--akr-error)}

@media(max-width:640px){
  .akram-phone-combo{grid-template-columns:104px minmax(0,1fr)!important}
  .akram-phone-country-picker{width:104px;min-width:104px}
  .akram-phone-country-menu{width:min(240px,calc(100vw - 32px))}
}

/* Google + Facebook social sign-in. */
.akram-social-entry{padding:18px 22px 0;max-width:760px;margin:0 auto}
.akram-social-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.akram-social-button{height:46px;border:1px solid #ccd6da;border-radius:7px;background:#fff;color:#202428!important;text-decoration:none!important;display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.03);transition:border-color .15s,box-shadow .15s,background .15s}
.akram-social-button:hover{border-color:#96aab2;box-shadow:0 3px 10px rgba(0,0,0,.07);background:var(--akr-soft)}
.akram-social-facebook{background:#1877f2;color:#fff!important;border-color:#1877f2}
.akram-social-facebook:hover{background:#166fe5;border-color:#166fe5}
.akram-social-facebook-icon{width:20px;height:20px;border-radius:50%;background:#fff;color:#1877f2;display:inline-flex;align-items:flex-end;justify-content:center;font-family:Arial,sans-serif;font-size:20px;font-weight:900;line-height:19px;overflow:hidden}
.akram-social-google-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}
.akram-social-separator{display:flex;align-items:center;gap:12px;margin:13px 0 0;color:#8a9398;font-size:12px;text-transform:lowercase}
.akram-social-separator:before,.akram-social-separator:after{content:"";height:1px;background:#e1e6e8;flex:1}
.akram-social-success,.akram-social-verified{max-width:760px;margin:14px auto 0;padding:10px 14px;border:1px solid #b8dec9;border-radius:7px;background:#f3fbf6;color:#17663e;font-size:13px;text-align:center}
.akram-social-verified{display:flex;align-items:center;justify-content:center;gap:7px}
.akram-social-email-note{margin-top:5px;color:var(--akr-success);font-size:11px;font-weight:700}
#akr-email[readonly]{background:#f8fafb!important;color:#45525a!important;cursor:default}
@media(max-width:640px){.akram-social-entry{padding:14px 14px 0}.akram-social-buttons{grid-template-columns:1fr}.akram-social-button{width:100%}}


/* Final registration hierarchy: no subtitle, reassurance at the bottom. */
.akram-registration-title h1{margin-bottom:0!important}
.akram-registration-title p{display:none!important}

/* Reassurance belongs at the END of registration, not between the heading and social login. */
.akram-benefits-strip-bottom{
  border-top:1px solid var(--akr-line)!important;
  border-bottom:0!important;
  margin-top:0!important;
}


@media(max-width:640px){
  .akram-cf-row{grid-template-columns:1fr}
}

/* Title-only section headings and one-line phone controls. */
/* Section headings are deliberately title-only; remove small decorative subtitles. */
.akram-section-heading{align-items:center!important}
.akram-section-heading>span{display:none!important}

/* Phone: flag/prefix + number + add/remove action all on ONE line. */
.akram-phone-label-row{display:block!important;margin-bottom:0!important}
.akram-phone-combo,
.akram-phone-combo.akram-phone-combo-primary,
.akram-phone-combo.akram-phone-combo-secondary{
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr) 44px!important;
  gap:8px!important;
  align-items:center!important;
  width:100%!important;
  overflow:visible!important;
}
.akram-phone-inline-action,
.akram-add-phone.akram-phone-inline-action,
.akram-remove-phone.akram-phone-inline-action{
  width:44px!important;height:44px!important;min-width:44px!important;
  padding:0!important;margin:0!important;border:1px solid var(--akr)!important;
  border-radius:6px!important;background:#fff!important;color:var(--akr)!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  font-size:25px!important;font-weight:700!important;line-height:1!important;box-shadow:none!important;
}
.akram-remove-phone.akram-phone-inline-action{color:#687177!important;border-color:#c8d4d8!important}
.akram-phone-inline-action:hover{background:#edf8fa!important;color:#066f85!important;border-color:var(--akr)!important}
.akram-phone-country-picker{width:112px!important;min-width:112px!important}
.akram-phone-country-button{height:44px!important}

@media(max-width:640px){
  .akram-phone-combo,
  .akram-phone-combo.akram-phone-combo-primary,
  .akram-phone-combo.akram-phone-combo-secondary{
    grid-template-columns:104px minmax(0,1fr) 44px!important;
    gap:7px!important;
  }
  .akram-phone-country-picker{width:104px!important;min-width:104px!important}
}

/* Worldwide Google address behavior is handled in JS. */

/* Production-only rules. */
.akram-phone-flag-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:28px;min-width:28px}
.akram-phone-country-option .akram-phone-flag-emoji{font-size:20px}
.akram-cf-verify{min-width:92px;padding-left:15px!important;padding-right:15px!important}
.akram-cf-status{min-height:18px;margin-top:5px;font-size:12px;font-weight:700}
.akram-cf-status.success{color:var(--akr-success)}.akram-cf-status.error{color:var(--akr-error)}

.akram-dynamic-required{color:var(--akr);font-weight:800}
.akram-dynamic-required[hidden]{display:none!important}

.akram-cf-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
@media(max-width:640px){.akram-cf-row{grid-template-columns:1fr}.akram-cf-verify{width:100%}}


/* ============================================================
   Akram Registration 1.4.1 final compatibility / mobile patch
   ============================================================ */

/* Dedicated page owns the content surface; remove the theme card/old-form ghost behind it. */
body.akram-registration-active #wrapper{overflow-x:hidden!important;background:var(--akr-page)!important}
body.akram-registration-active .akram-registration-host-clean{
  width:100%!important;max-width:none!important;min-width:0!important;
  padding-left:0!important;padding-right:0!important;
  margin-left:0!important;margin-right:0!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
}
body.akram-registration-active #main.akram-registration-host-clean,
body.akram-registration-active #content.akram-registration-host-clean,
body.akram-registration-active .page-content.akram-registration-host-clean{padding-top:0!important;padding-bottom:0!important}

/* Do not use JS viewport offsets: they were the source of Samsung/Chrome clipping. */
.akram-registration{
  width:min(calc(100vw - 24px),1420px)!important;
  max-width:1420px!important;
  margin:18px auto 38px!important;
  left:auto!important;transform:none!important;
  min-width:0!important;overflow:visible!important;
}
.akram-registration-shell,.akram-registration-form,.akram-registration-columns,.akram-registration-card,.akram-grid{min-width:0!important;max-width:100%!important}
.akram-registration input,.akram-registration select,.akram-registration button{max-width:100%}

/* All required stars use one Akram blue. */
.akram-required,.akram-dynamic-required{color:var(--akr)!important;font-weight:800!important}

/* Codice Fiscale label: Calcola opens the in-page calculator; Verifica remains local. */
.akram-cf-label{display:flex!important;align-items:center!important;gap:7px!important;width:max-content!important;max-width:100%!important}
.akram-cf-calculate-link{font-size:12px!important;font-weight:500!important;color:var(--akr-calculator)!important;text-decoration:none!important}
.akram-cf-calculate-link:hover{text-decoration:underline!important;color:var(--akr-calculator)!important}

/* Stable select arrows, ~3 mm from right border on desktop and mobile. */
.akram-registration select:not(.akram-phone-country-native){
  -webkit-appearance:none!important;appearance:none!important;
  padding-right:38px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.25 7 7.25 13 1.25' fill='none' stroke='%234b555b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-size:14px 9px!important;
  background-position:right 12px center!important;
}

/* Real local PNG country flags where bundled; emoji is only a fallback for rare territories. */
.akram-phone-flag{width:26px;min-width:26px;height:18px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1px}
.akram-phone-flag-image{display:block!important;width:24px!important;height:16px!important;object-fit:cover!important;border:0!important;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.akram-phone-flag-fallback{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:19px;line-height:1}
.akram-phone-country-button{padding-right:11px!important}
.akram-phone-chevron{margin-left:auto!important;margin-right:0!important}
.akram-phone-country-option{grid-template-columns:30px minmax(0,1fr) auto!important}

/* Address uses one native input everywhere. Suggestions are our own Places API (New) list. */
.akram-address-wrap{position:relative!important;overflow:visible!important;z-index:50!important}
#akr-address{display:block!important;position:relative!important;left:auto!important;width:100%!important;height:44px!important;opacity:1!important;pointer-events:auto!important}
#akr-address.akram-native-address-hidden{display:block!important;position:relative!important;left:auto!important;width:100%!important;height:44px!important;opacity:1!important;pointer-events:auto!important}
.akram-google-widget-host{display:none!important}
.akram-google-suggestions{
  display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:10050;
  max-height:310px;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:#fff;border:1px solid #cbd5d9;border-radius:7px;box-shadow:0 12px 30px rgba(0,0,0,.17);padding:5px;
}
.akram-google-suggestions.is-open{display:block!important}
.akram-google-suggestion{display:block;width:100%;min-height:42px;padding:9px 11px;border:0;border-radius:5px;background:#fff;color:#202428;text-align:left;font:inherit;font-size:13px;line-height:1.35;cursor:pointer;white-space:normal}
.akram-google-suggestion:hover,.akram-google-suggestion.is-active{background:#eef8fa;color:#0b6072}
.akram-google-status.is-visible{display:block}

/* Reassurance is intentionally taller and everything is centered. */
.akram-benefits-strip-bottom>div{
  min-height:92px!important;padding:20px 18px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;
}
.akram-benefits-strip-bottom strong,.akram-benefits-strip-bottom span{text-align:center!important;width:100%!important}

/* Social login: browser sessions are reused; keep buttons tap-friendly on mobile. */
.akram-social-button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

@media(max-width:860px){
  .akram-registration{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;margin:8px auto 24px!important}
  .akram-registration-form{padding:12px!important}
  .akram-registration-columns{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  .akram-registration-card{width:100%!important;padding:15px!important;overflow:visible!important}
  .akram-grid{grid-template-columns:minmax(0,1fr)!important}
  .akram-full{grid-column:auto!important}
  .akram-vat-row{grid-template-columns:minmax(0,1fr)!important}
  .akram-vies-button{width:100%!important}
  .akram-registration input,.akram-registration select{font-size:16px!important} /* stops iOS zoom */
  .akram-google-suggestions{max-height:45vh}
}

@media(max-width:480px){
  .akram-registration-topbar{padding:15px!important}
  .akram-social-entry{padding-left:12px!important;padding-right:12px!important}
  .akram-account-type-block{margin-left:12px!important;margin-right:12px!important}
  .akram-phone-combo,.akram-phone-combo.akram-phone-combo-primary,.akram-phone-combo.akram-phone-combo-secondary{
    grid-template-columns:96px minmax(0,1fr) 42px!important;gap:6px!important
  }
  .akram-phone-country-picker{width:96px!important;min-width:96px!important}
  .akram-phone-inline-action,.akram-add-phone.akram-phone-inline-action,.akram-remove-phone.akram-phone-inline-action{width:42px!important;min-width:42px!important;height:44px!important}
  .akram-phone-country-button{padding-left:6px!important;padding-right:7px!important;gap:4px!important}
  .akram-phone-flag{width:23px!important;min-width:23px!important}
  .akram-phone-flag-image{width:22px!important;height:15px!important}
  .akram-phone-country-menu{left:0!important;width:min(280px,calc(100vw - 34px))!important}
  .akram-registration-bottom{padding:10px!important}
  .akram-benefits-strip{grid-template-columns:1fr 1fr!important}
  .akram-benefits-strip-bottom>div{min-height:86px!important;padding:15px 8px!important}
}

/* Dropdowns must be allowed to escape the main shell (phone + Google suggestions). */
.akram-registration-shell{overflow:visible!important}
.akram-registration-card{overflow:visible!important}

/* ============================================================
   Akram Registration legacy layout compatibility base
   In-page CF calculator + viewport-centred registration surface
   ============================================================ */

/* Break the module out of Electron/PrestaShop's offset content column and center it on the real viewport. */
.akram-registration{
  position:relative!important;
  left:50%!important;
  width:100vw!important;
  max-width:none!important;
  margin-left:-50vw!important;
  margin-right:-50vw!important;
  padding-left:16px!important;
  padding-right:16px!important;
  transform:none!important;
}
.akram-registration-shell{
  width:min(100%,1420px)!important;
  max-width:1420px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.akram-registration-active #content-wrapper,
body.akram-registration-active #main,
body.akram-registration-active #content,
body.akram-registration-active .page-content{
  overflow:visible!important;
}
body.akram-registration-active #content-wrapper.akram-registration-host-clean,
body.akram-registration-active #main.akram-registration-host-clean,
body.akram-registration-active #content.akram-registration-host-clean,
body.akram-registration-active .page-content.akram-registration-host-clean{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

/* "Non lo sai? Calcola" stays inside the form; no external website. */
.akram-cf-label{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  width:auto!important;
  max-width:100%!important;
  flex-wrap:wrap!important;
}
.akram-cf-question{
  color:#616b70!important;
  font-size:12px!important;
  font-weight:400!important;
  margin-left:2px!important;
}
.akram-cf-calculate-link{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  margin:0!important;
  color:var(--akr-calculator)!important;
  font:inherit!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.2!important;
  cursor:pointer!important;
  text-decoration:none!important;
}
.akram-cf-calculate-link:hover,.akram-cf-calculate-link:focus{
  color:var(--akr-calculator)!important;
  text-decoration:underline!important;
  outline:0!important;
}

/* In-page Codice Fiscale calculator modal. */
body.akram-cf-modal-open{overflow:hidden!important}
.akram-cf-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:100000;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.akram-cf-modal.is-open{display:flex!important}
.akram-cf-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(23,31,35,.58);
  backdrop-filter:blur(2px);
}
.akram-cf-modal-panel{
  position:relative;
  z-index:1;
  width:min(100%,640px);
  max-height:min(90vh,760px);
  overflow:auto;
  background:var(--akr-white);
  border:1px solid #d8e1e4;
  border-radius:12px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
  padding:24px;
}
.akram-cf-modal-panel h3{margin:0 36px 6px 0;font-size:21px;line-height:1.2;color:var(--akr-text)}
.akram-cf-modal-intro{margin:0 0 18px;color:#687177;font-size:13px;line-height:1.45}
.akram-cf-modal-close{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border:1px solid #d6dfe2;
  border-radius:50%;
  background:#fff;
  color:#3f4a50;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.akram-cf-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 14px}
.akram-cf-modal-full{grid-column:1/-1}
.akram-cf-modal label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#292d30}
.akram-cf-modal input,.akram-cf-modal select{
  width:100%;height:44px;border:1px solid #ccd4d8;border-radius:5px;background:var(--akr-white);color:var(--akr-text);padding:0 11px;font-size:14px;outline:none;box-sizing:border-box;
}
.akram-cf-modal input:focus,.akram-cf-modal select:focus{border-color:var(--akr);box-shadow:0 0 0 2px rgba(11,138,163,.1)}
.akram-cf-modal-help{margin-top:5px;color:#737d82;font-size:11px;line-height:1.4}
.akram-cf-modal-status{min-height:20px;margin-top:12px;font-size:12px;font-weight:700;text-align:center}
.akram-cf-modal-status.error{color:var(--akr-error)}
.akram-cf-modal-status.success{color:var(--akr-success)}
.akram-cf-modal-actions{display:flex;justify-content:center;margin-top:10px}
.akram-cf-modal-calc{min-width:210px}

@media(max-width:860px){
  .akram-registration{
    left:50%!important;
    width:100vw!important;
    max-width:none!important;
    margin-left:-50vw!important;
    margin-right:-50vw!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
}
@media(max-width:560px){
  .akram-cf-modal{padding:10px}
  .akram-cf-modal-panel{padding:18px 14px;border-radius:10px;max-height:94vh}
  .akram-cf-modal-grid{grid-template-columns:1fr}
  .akram-cf-modal-full{grid-column:auto}
  .akram-cf-modal input,.akram-cf-modal select{font-size:16px}
  .akram-cf-modal-calc{width:100%}
}


/* ============================================================
   Akram Registration 1.5.0 production final
   Searchable CF birthplace + admin-configurable theme palette
   ============================================================ */
/* Theme-variable consistency. */
.akram-registration-login a,
.akram-account-btn.active,
.akram-button,
.akram-submit{background:var(--akr)!important}
.akram-registration-login a:hover,.akram-button:hover,.akram-submit:hover{background:var(--akr-dark)!important}
.akram-registration input:focus,.akram-registration select:focus,
.akram-cf-modal input:focus,.akram-cf-modal select:focus{border-color:var(--akr)!important;box-shadow:0 0 0 2px rgba(0,0,0,.06)!important}
.akram-cf-calculate-link,.akram-cf-calculate-link:hover,.akram-cf-calculate-link:focus{color:var(--akr-calculator)!important}
.akram-vies-status.success,.akram-cf-status.success,.akram-cf-modal-status.success{color:var(--akr-success)!important}
.akram-vies-status.error,.akram-cf-status.error,.akram-cf-modal-status.error,.akram-google-status.is-error{color:var(--akr-error)!important}
.akram-required,.akram-dynamic-required{color:var(--akr)!important}

/* Searchable Comune / Stato di nascita. */
.akram-cf-birthplace-wrap{position:relative!important;z-index:5!important}
.akram-cf-birthplace-suggestions{
  display:none;position:absolute;left:0;right:0;top:calc(100% - 28px);z-index:100010;
  max-height:280px;overflow:auto;-webkit-overflow-scrolling:touch;
  background:var(--akr-white);border:1px solid var(--akr-line);border-radius:7px;
  box-shadow:0 12px 30px rgba(0,0,0,.18);padding:5px;
}
.akram-cf-birthplace-suggestions.is-open{display:block!important}
.akram-cf-birthplace-option{
  display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;
  min-height:42px;padding:8px 10px;border:0;border-radius:5px;background:#fff;color:var(--akr-text);
  text-align:left;cursor:pointer;font:inherit;
}
.akram-cf-birthplace-option:hover,.akram-cf-birthplace-option:focus{background:var(--akr-soft);outline:0}
.akram-cf-birthplace-name{font-size:13px;font-weight:700;line-height:1.25}
.akram-cf-birthplace-meta{font-size:11px;color:var(--akr-muted);white-space:nowrap}
.akram-cf-birthplace-empty{padding:12px 10px;color:var(--akr-muted);font-size:12px;text-align:center}

/* Calculator action row: small Reset + primary Calcola e inserisci. */
.akram-cf-modal-actions{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;flex-wrap:wrap!important;margin-top:12px!important}
.akram-cf-reset{
  height:44px;padding:0 16px;border:1px solid var(--akr-line);border-radius:6px;background:#fff;
  color:var(--akr-muted);font-weight:700;cursor:pointer;
}
.akram-cf-reset:hover{border-color:var(--akr);color:var(--akr);background:var(--akr-soft)}
.akram-cf-modal-calc{min-width:210px!important}

/* Modal takes the same configurable palette as the registration page. */
.akram-cf-modal-panel{border-color:var(--akr-line)!important;color:var(--akr-text)!important}
.akram-cf-modal-panel h3{color:var(--akr-text)!important}
.akram-cf-modal-intro,.akram-cf-modal-help{color:var(--akr-muted)!important}

@media(max-width:560px){
  .akram-cf-modal-actions{display:grid!important;grid-template-columns:105px minmax(0,1fr)!important;width:100%!important}
  .akram-cf-reset,.akram-cf-modal-calc{width:100%!important;min-width:0!important}
  .akram-cf-birthplace-suggestions{max-height:38vh}
}

/* ============================================================
   Akram Registration 1.5.3 EDGE-BALANCE CLOSEOUT
   Real-viewport centering without CSS full-bleed assumptions
   ============================================================ */
body.akram-registration-active{overflow-x:hidden!important}
.akram-registration{
  position:relative!important;
  left:0!important;
  right:auto!important;
  margin:18px 0 38px!important;
  max-width:none!important;
  box-sizing:border-box!important;
  padding:0!important;
}
.akram-registration-shell{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.akram-registration-active #content-wrapper,
body.akram-registration-active #main,
body.akram-registration-active #content,
body.akram-registration-active .page-content,
body.akram-registration-active .container,
body.akram-registration-active .row{
  overflow:visible!important;
}
.akram-social-verified{
  display:block!important;
  max-width:760px!important;
  margin:14px auto 0!important;
  padding:10px 14px!important;
  text-align:center!important;
}
@media(max-width:860px){
  .akram-registration{margin-top:8px!important;margin-bottom:20px!important}
  .akram-registration-form{padding-left:12px!important;padding-right:12px!important}
}
@media(max-width:640px){
  .akram-registration{margin-left:0!important;margin-right:0!important;padding:0!important}
  .akram-registration-shell{border-radius:8px!important}
}


/* ============================================================
   Akram Registration 1.5.3 EDGE-BALANCE CLOSEOUT
   JS measures fixed theme rails in real time. These are safe pre-JS fallbacks.
   ============================================================ */
@media(min-width:861px){
  .akram-registration{
    width:min(calc(100vw - 128px),1360px)!important;
    max-width:none!important;
  }
}
@media(max-width:860px){
  .akram-registration{
    left:0!important;
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}


/* v1.5.3 final desktop guard: leave breathing room for Electron floating rails. */
@media(min-width:861px){
  .akram-registration{min-width:0!important;}
  .akram-registration-form,.akram-registration-columns,.akram-registration-card{min-width:0!important;}
}

/* ============================================================
   Akram Registration 1.5.4 — LUXURY UI CLOSEOUT
   Final visual-rhythm pass. The reassurance panel now follows the
   same inset/grid language as the form cards instead of touching
   the shell edges.
   ============================================================ */
.akram-registration-shell{
  background:var(--akr-white)!important;
  border-color:var(--akr-line)!important;
  border-radius:14px!important;
  box-shadow:0 10px 34px rgba(19,35,42,.055)!important;
}
.akram-registration-card,
.akram-registration-bottom{
  border-color:var(--akr-line)!important;
  border-radius:12px!important;
  background:var(--akr-white)!important;
}
.akram-registration-bottom{background:var(--akr-soft)!important}

/* The reassurance panel must align with the inner form edges. */
.akram-benefits-strip-bottom{
  width:auto!important;
  margin:0 28px 28px!important;
  border:1px solid var(--akr-line)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:var(--akr-soft)!important;
  box-shadow:0 3px 12px rgba(19,35,42,.025)!important;
}
.akram-benefits-strip-bottom>div{
  border-right:1px solid var(--akr-line)!important;
  background:transparent!important;
}
.akram-benefits-strip-bottom>div:last-child{border-right:0!important}
.akram-benefits-strip-bottom strong{color:var(--akr-text)!important}
.akram-benefits-strip-bottom span{color:var(--akr-muted)!important}

/* Keep the vertical rhythm deliberate rather than leaving a large dead band. */
@media(min-width:861px){
  .akram-registration-form{padding-bottom:18px!important}
}

/* Tablet: same inset as the form content. */
@media(max-width:860px){
  .akram-benefits-strip-bottom{margin:0 12px 16px!important;border-radius:10px!important}
  .akram-registration-form{padding-bottom:12px!important}
  .akram-benefits-strip-bottom>div:nth-child(2){border-right:0!important}
  .akram-benefits-strip-bottom>div:nth-child(-n+2){border-bottom:1px solid var(--akr-line)!important}
}

/* Phone: preserve a real white gutter so the panel never looks glued to the screen. */
@media(max-width:480px){
  .akram-benefits-strip-bottom{margin:0 10px 12px!important;border-radius:9px!important}
  .akram-benefits-strip-bottom>div{border-right:1px solid var(--akr-line)!important}
  .akram-benefits-strip-bottom>div:nth-child(2n){border-right:0!important}
  .akram-benefits-strip-bottom>div:nth-child(-n+2){border-bottom:1px solid var(--akr-line)!important}
}

/* Palette consistency: visual chrome follows Back Office theme colours. */
.akram-registration-card,
.akram-registration-bottom,
.akram-clean-check,
.akram-account-switch,
.akram-registration input,
.akram-registration select,
.akram-cf-modal-panel,
.akram-cf-modal input,
.akram-cf-modal select{border-color:var(--akr-line)!important}
.akram-clean-check{background:var(--akr-white)!important}
.akram-section-heading{border-bottom-color:var(--akr-line)!important}
