/* ── PROFESSIONE CURA · Common Styles ── */
@import url("./local-fonts.196db496a785.css");

:root {
  --green:       #2A4A35;
  --green-deep:  #1B3225;
  --green-mid:   #3D6B4A;
  --green-light: #7AAE88;
  --green-pale:  #E8F0EA;
  --cream:       #F8F3EA;
  --cream-dark:  #EDE6D8;
  --text:        #1A2920;
  --text-muted:  #5E7567;
  --white:       #FDFAF4;
  --border:      rgba(42,74,53,0.09);
  --red:         #C0392B;
  --red-pale:    #FDECEA;
  --gold:        #C9913A;
  --gold-pale:   #FDF3E3;
  --blue:        #2D5A8A;
  --blue-pale:   #EAF0F8;
  --shadow-sm:   0 2px 12px rgba(42,74,53,0.08);
  --shadow-md:   0 8px 32px rgba(42,74,53,0.12);
  --shadow-lg:   0 20px 60px rgba(42,74,53,0.14);
  --radius-sm:   10px;
  --radius-md:   16px;
  --radius-lg:   22px;
  --radius-xl:   28px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'DM Sans', sans-serif;
  background: var(--cream);
  color: var(--text);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ── NAV ── */
nav {
  position: fixed; inset: 0 0 auto; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 56px;
  background: rgba(248,243,234,0.92);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--border);
  transition: box-shadow 0.3s;
}
nav.scrolled { box-shadow: 0 2px 20px rgba(42,74,53,0.08); }

.nav-logo {
  display: flex; align-items: center; gap: 9px;
  font-size: 15px; font-weight: 500; color: var(--green);
  text-decoration: none; letter-spacing: -0.01em;
}
.logo-mark {
  width: 34px; height: 34px; background: var(--green);
  border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.logo-mark img {
  width: 100%; height: 100%; display: block;
  object-fit: cover; border-radius: inherit;
}

.nav-links { display: flex; align-items: center; gap: 32px; list-style: none; }
.nav-links a {
  font-size: 14px; color: var(--text); text-decoration: none;
  font-weight: 400; opacity: 0.72; transition: opacity 0.2s, color 0.2s;
}
.nav-links a:hover { opacity: 1; color: var(--green); }

.nav-right { display: flex; align-items: center; gap: 12px; }

.btn-nav-ghost {
  background: transparent; color: var(--green); border: 1.5px solid var(--border);
  padding: 9px 20px; border-radius: 100px;
  font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 500;
  cursor: pointer; text-decoration: none;
  transition: border-color 0.2s, background 0.2s;
}
.btn-nav-ghost:hover { border-color: var(--green); background: var(--green-pale); }

.btn-nav {
  background: var(--green); color: #fff; border: none;
  padding: 10px 22px; border-radius: 100px;
  font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 500;
  cursor: pointer; text-decoration: none;
  transition: background 0.2s, transform 0.15s;
  display: inline-block;
}
.btn-nav:hover { background: var(--green-deep); transform: translateY(-1px); }

/* ── BUTTONS ── */
.btn-primary {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--green); color: #fff;
  padding: 14px 28px; border-radius: 100px;
  font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 500;
  text-decoration: none; border: none; cursor: pointer;
  transition: background 0.2s, transform 0.18s, box-shadow 0.2s;
}
.btn-primary:hover { background: var(--green-deep); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(42,74,53,0.28); }
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.btn-outline {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; color: var(--green);
  padding: 13px 28px; border-radius: 100px;
  font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 500;
  text-decoration: none; border: 1.5px solid var(--green); cursor: pointer;
  transition: background 0.2s, color 0.2s, transform 0.18s;
}
.btn-outline:hover { background: var(--green); color: #fff; transform: translateY(-2px); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; color: var(--text-muted);
  padding: 13px 20px; border-radius: 100px;
  font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 400;
  text-decoration: none; border: 1.5px solid var(--border); cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.btn-ghost:hover { border-color: var(--green); color: var(--green); }

/* ── FORMS ── */
.form-group { display: flex; flex-direction: column; gap: 7px; }
.form-label {
  font-size: 13px; font-weight: 500; color: var(--text);
  letter-spacing: 0.01em;
}
.form-label span { color: var(--text-muted); font-weight: 300; }

.form-input, .form-select, .form-textarea {
  border: 1.5px solid var(--border); border-radius: var(--radius-md);
  padding: 13px 16px; font-family: 'DM Sans', sans-serif;
  font-size: 15px; color: var(--text); background: var(--white);
  outline: none; transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
  -webkit-appearance: none; appearance: none;
}
.form-input::placeholder, .form-textarea::placeholder { color: var(--text-muted); }
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(42,74,53,0.08);
}
.form-input.error { border-color: var(--red); }
.form-error { font-size: 12px; color: var(--red); font-weight: 400; }

.form-textarea { resize: vertical; min-height: 100px; line-height: 1.6; }
.form-select-wrap { position: relative; }
.form-select-wrap::after {
  content: '';
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  width: 0; height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid var(--text-muted);
  pointer-events: none;
}

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-hint { font-size: 12px; color: var(--text-muted); font-weight: 300; }

/* Checkbox / Radio */
.form-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.form-check input { display: none; }
.check-box {
  width: 20px; height: 20px; border-radius: 6px;
  border: 1.5px solid var(--border); background: var(--white);
  flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  transition: background 0.2s, border-color 0.2s; margin-top: 1px;
}
.form-check input:checked + .check-box { background: var(--green); border-color: var(--green); }
.form-check input:checked + .check-box::after {
  content: ''; width: 10px; height: 6px;
  border-left: 2px solid white; border-bottom: 2px solid white;
  transform: rotate(-45deg) translateY(-1px);
}
.check-label { font-size: 14px; color: var(--text); line-height: 1.5; }
.check-label a { color: var(--green); }

/* Tag checkboxes */
.tag-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-check { display: none; }
.tag-label {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--white); border: 1.5px solid var(--border);
  border-radius: 100px; padding: 8px 16px;
  font-size: 13px; font-weight: 400; color: var(--text);
  cursor: pointer; transition: all 0.18s;
}
.tag-check:checked + .tag-label {
  background: var(--green-pale); border-color: var(--green); color: var(--green); font-weight: 500;
}

/* ── ANIMATIONS ── */
.reveal { opacity: 1; transform: translateY(0); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.will-reveal { opacity: 0; transform: translateY(24px); }
.reveal.will-reveal.in { opacity: 1; transform: translateY(0); }
.d1 { transition-delay: 0.08s; }
.d2 { transition-delay: 0.16s; }
.d3 { transition-delay: 0.24s; }

/* ── UTILITIES ── */
.text-muted { color: var(--text-muted); }
.text-green { color: var(--green); }
.font-serif { font-family: 'Fraunces', serif; }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  nav { padding: 14px 20px; }
  .nav-links { display: none; }
  .btn-nav-ghost { display: none; }
  .form-row { grid-template-columns: 1fr; }
}


/* Legal and information pages */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(201,145,58,0.48); outline-offset: 3px; }
.legal-page { width: min(860px, calc(100% - 40px)); margin: 0 auto; padding: 140px 0 80px; }
.legal-kicker { color: var(--green-mid); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; }
.legal-page h1 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: clamp(42px, 7vw, 70px); font-weight: 400; line-height: 1; margin-bottom: 14px; }
.legal-updated { color: var(--text-muted); margin-bottom: 36px; }
.legal-notice { background: var(--gold-pale); border: 1px solid rgba(201,145,58,.24); border-radius: var(--radius-md); color: var(--text); line-height: 1.7; padding: 20px 22px; margin-bottom: 34px; }
.legal-page section { padding: 28px 0; border-bottom: 1px solid var(--border); }
.legal-page h2 { color: var(--green); font-family: 'Fraunces', serif; font-size: 27px; font-weight: 500; margin-bottom: 10px; }
.legal-page section p { color: var(--text-muted); line-height: 1.8; }
.legal-page section a, .simple-footer a { color: var(--green); }
.simple-footer { border-top: 1px solid var(--border); color: var(--text-muted); font-size: 13px; padding: 24px 20px; text-align: center; }

/* Dynamic professional directory */
.directory-page { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 130px 0 80px; }
.directory-hero { max-width: 760px; margin-bottom: 36px; }
.directory-hero h1, .public-profile-card h1 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: clamp(38px, 6vw, 66px); font-weight: 400; line-height: 1.05; margin-bottom: 14px; }
.directory-hero > p:last-child { color: var(--text-muted); font-size: 17px; line-height: 1.7; }
.directory-filters { display: grid; grid-template-columns: 1.2fr 1fr 1fr auto; gap: 14px; align-items: end; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; box-shadow: var(--shadow-sm); }
.directory-filters label { color: var(--green); display: grid; gap: 7px; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.directory-count { color: var(--text-muted); margin: 28px 0 16px; }
.directory-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.directory-card, .public-profile-card, .public-profile-main, .public-profile-aside { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.directory-card { display: flex; flex-direction: column; gap: 18px; padding: 24px; }
.directory-card-top, .public-profile-card { display: flex; align-items: center; gap: 16px; }
.directory-avatar { align-items: center; background: var(--green); border-radius: 18px; color: var(--cream); display: flex; flex: 0 0 58px; font-family: 'Fraunces', serif; font-size: 21px; height: 58px; justify-content: center; }
.directory-avatar-large { flex-basis: 92px; height: 92px; border-radius: 26px; font-size: 32px; }
.directory-role { color: var(--green-mid); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.directory-card h2 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: 25px; font-weight: 500; }
.directory-card-top p:last-child, .directory-bio, .public-profile-card p:last-child, .public-profile-main p, .public-profile-aside p { color: var(--text-muted); line-height: 1.65; }
.directory-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.directory-tags span { background: var(--green-pale); border-radius: 100px; color: var(--green); font-size: 12px; padding: 7px 10px; }
.directory-action { display: inline-flex; justify-content: center; margin-top: auto; }
.directory-back { color: var(--green); display: inline-block; margin-bottom: 24px; text-decoration: none; }
.public-profile-card { padding: 30px; }
.public-profile-card h1 { font-size: clamp(38px, 5vw, 58px); margin: 5px 0; }
.public-profile-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; margin-top: 24px; }
.public-profile-main, .public-profile-aside { padding: 28px; }
.public-profile-main h2 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: 27px; margin: 8px 0 10px; }
.public-profile-main h2:not(:first-child) { margin-top: 30px; }
.public-profile-aside { align-self: start; display: grid; gap: 18px; position: sticky; top: 92px; }
.public-profile-aside strong { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: 31px; }
@media (max-width: 900px) { .directory-filters, .directory-grid, .public-profile-grid { grid-template-columns: 1fr; } .public-profile-aside { position: static; } }

/* Account dashboards */
.account-dashboard { width: min(1080px, calc(100% - 40px)); margin: 0 auto; padding: 132px 0 80px; }
.dashboard-welcome { margin-bottom: 30px; }
.dashboard-welcome h1 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: clamp(40px, 6vw, 64px); font-weight: 400; line-height: 1.05; }
.dashboard-welcome > p:last-child { color: var(--text-muted); margin-top: 8px; }
.dashboard-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 22px; }
.dashboard-panel { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 28px; }
.dashboard-panel h2 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: 30px; font-weight: 500; margin: 6px 0 12px; }
.dashboard-panel > p:not(.dashboard-label) { color: var(--text-muted); line-height: 1.65; margin-bottom: 20px; }
.dashboard-label { color: var(--green-mid); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.dashboard-status { border-top: 5px solid var(--gold); }
.dashboard-status.status-approvato { border-top-color: var(--green-light); }
.dashboard-status.status-rifiutato { border-top-color: var(--red); }
.dashboard-status.status-integrazione_richiesta { border-top-color: var(--gold); }
.dashboard-alert { background: var(--gold-pale); border-radius: 12px; color: var(--text); line-height: 1.6; margin: 16px 0 20px; padding: 15px; }
.status-rifiutato .dashboard-alert { background: var(--red-pale); }
.dashboard-data { display: grid; gap: 0; }
.dashboard-data div { align-items: center; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; padding: 13px 0; }
.dashboard-data dt { color: var(--text-muted); }
.dashboard-data dd { color: var(--green-deep); font-weight: 600; }
@media (max-width: 760px) { .dashboard-grid { grid-template-columns: 1fr; } }

/* Professional profile editor */
.directory-photo { border-radius: 18px; flex: 0 0 58px; height: 58px; object-fit: cover; width: 58px; }
.directory-photo-large { border-radius: 26px; flex-basis: 92px; height: 92px; width: 92px; }
.profile-editor { max-width: 900px; }
.editor-form { display: grid; gap: 18px; }
.editor-form-small { max-width: 620px; }
.editor-field { display: grid; gap: 8px; }
.editor-field > label { color: var(--green); font-size: 13px; font-weight: 600; }
.editor-field small { color: var(--text-muted); line-height: 1.45; }
.editor-field ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.editor-field ul label { align-items: center; background: var(--green-pale); border-radius: 999px; cursor: pointer; display: flex; gap: 7px; padding: 8px 11px; }
.editor-field input[type="file"] { background: var(--cream); border: 1px dashed var(--green-light); border-radius: 12px; padding: 16px; }
.editor-error { color: var(--red) !important; font-weight: 600; }
.document-panel { display: grid; gap: 18px; margin-top: 22px; }
.document-list { display: grid; }
.document-list > div { align-items: center; border-top: 1px solid var(--border); display: flex; justify-content: space-between; padding: 13px 0; }
.document-list a { color: var(--green); font-weight: 600; }

/* Requests and private messaging */
.dashboard-inbox-link { color: var(--green); display: inline-block; font-weight: 600; margin: -12px 0 24px; text-decoration: none; }
.request-page { max-width: 760px; }
.conversation-list { display: grid; gap: 14px; }
.conversation-preview { align-items: center; color: inherit; display: flex; justify-content: space-between; text-decoration: none; transition: transform .18s, box-shadow .18s; }
.conversation-preview:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.conversation-preview h2 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: 25px; margin: 5px 0; }
.conversation-preview p:not(.dashboard-label), .conversation-preview time { color: var(--text-muted); }
.conversation-preview time { flex: 0 0 auto; font-size: 12px; margin-left: 20px; }
.conversation-page { max-width: 900px; }
.conversation-header { align-items: center; display: flex; justify-content: space-between; }
.conversation-header h1 { color: var(--green-deep); font-family: 'Fraunces', serif; font-size: 34px; font-weight: 500; margin: 5px 0; }
.request-actions { display: flex; gap: 8px; }
.request-actions form { margin: 0; }
.message-thread { display: grid; gap: 12px; padding: 26px 0; }
.message-bubble { background: var(--white); border: 1px solid var(--border); border-radius: 4px 18px 18px 18px; box-shadow: var(--shadow-sm); justify-self: start; max-width: 76%; padding: 15px 17px; }
.message-bubble.mine { background: var(--green); border-radius: 18px 4px 18px 18px; color: var(--cream); justify-self: end; }
.message-bubble p { line-height: 1.6; }
.message-bubble time { color: var(--text-muted); display: block; font-size: 10px; margin-top: 8px; }
.message-bubble.mine time { color: rgba(248,243,234,.68); }
.message-compose { display: grid; gap: 12px; position: sticky; bottom: 12px; }
.message-compose textarea { resize: vertical; }
@media (max-width: 700px) { .conversation-header, .conversation-preview { align-items: flex-start; flex-direction: column; gap: 16px; } .conversation-preview time { margin-left: 0; } .message-bubble { max-width: 90%; } }
/* Shared navigation and footer */
.skip-link{background:var(--green-deep);color:#fff;left:16px;padding:10px 16px;position:fixed;top:-60px;z-index:500}.skip-link:focus{top:12px}.nav-menu{align-items:center;display:flex;gap:32px}.nav-toggle{background:transparent;border:0;cursor:pointer;display:none;padding:8px}.nav-toggle span{background:var(--green);border-radius:2px;display:block;height:2px;margin:5px;width:25px}.page-messages{margin:96px auto 0;max-width:720px;padding:0 24px}.page-messages .form-hint{background:var(--green-pale);border:1px solid var(--green-light);border-radius:12px;color:var(--green-deep);display:block;margin-bottom:10px;padding:12px 15px}.site-footer{align-items:flex-start;background:var(--green-deep);color:rgba(255,255,255,.72);display:flex;gap:40px;justify-content:space-between;padding:48px max(20px,calc((100vw - 1180px)/2))}.site-footer .nav-logo{color:#fff}.site-footer p{line-height:1.6;margin-top:12px;max-width:380px}.site-footer-links{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(130px,1fr))}.site-footer-links a{color:rgba(255,255,255,.82);font-size:14px;text-decoration:none}.dashboard-quick-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.dashboard-quick-links .dashboard-inbox-link{background:var(--white);border:1px solid var(--border);border-radius:999px;margin:0;padding:10px 16px}
@media(max-width:768px){nav{min-height:65px}.nav-toggle{display:block;margin-left:auto}.nav-menu{background:var(--cream);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);display:none;left:0;padding:18px 20px 24px;position:absolute;right:0;top:64px}.nav-menu.is-open{display:grid;gap:20px}.nav-links{align-items:stretch;display:grid;gap:4px}.nav-links a{display:block;font-size:16px;padding:10px 0}.nav-right{align-items:stretch;display:grid;gap:10px}.nav-right form,.nav-right button,.nav-right a{display:block;text-align:center;width:100%}.site-footer{display:grid;padding:36px 20px}.site-footer-links{grid-template-columns:1fr}.directory-page,.account-dashboard{width:min(100% - 28px,1180px)}.public-profile-card{align-items:flex-start;flex-direction:column;padding:22px}.directory-filters{padding:16px}}
.account-privacy-actions{display:grid;gap:28px;margin-top:22px}.account-privacy-actions>div+div{border-top:1px solid var(--border);padding-top:24px}.btn-danger{background:var(--red);border:0;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;padding:12px 20px;text-decoration:none}.danger-zone{border-color:rgba(192,57,43,.28)}.danger-zone .dashboard-label,.danger-zone h2{color:var(--red)}
.directory-filters-advanced{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-actions{align-items:center;display:flex;gap:10px}.directory-rate{color:var(--green);font-weight:700}.pagination{align-items:center;background:transparent;border:0;display:flex;gap:18px;justify-content:center;margin-top:36px;padding:0;position:static}.pagination a{color:var(--green);font-weight:600;text-decoration:none}.pagination span{color:var(--text-muted)}
@media(max-width:1000px){.directory-filters-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.directory-filters-advanced{grid-template-columns:1fr}}
.conversation-tools{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding:14px}.conversation-tools form{margin:0}.review-list{display:grid;gap:14px;margin-top:14px}.review-card{background:var(--cream);border:1px solid var(--border);border-radius:16px;padding:18px}.review-card>strong,.rating-summary strong{color:var(--gold);font-size:22px}.review-card small{color:var(--text-muted);display:block;margin-top:10px}.review-reply{border-left:3px solid var(--green-light);margin-top:14px;padding-left:14px}.rating-summary{align-items:baseline;display:flex;gap:10px}.rating-summary span{color:var(--text-muted)}
.cookie-banner{align-items:center;background:var(--white);border:1px solid var(--border);border-radius:18px;bottom:18px;box-shadow:var(--shadow-lg);display:flex;gap:24px;justify-content:space-between;left:50%;max-width:980px;padding:18px 20px;position:fixed;transform:translateX(-50%);width:calc(100% - 32px);z-index:400}.cookie-banner[hidden]{display:none}.cookie-banner p{color:var(--text-muted);font-size:13px;line-height:1.55;margin-top:4px}.cookie-actions{align-items:center;display:flex;flex:0 0 auto;gap:8px}.cookie-actions a{color:var(--green);font-size:13px}@media(max-width:700px){.cookie-banner,.cookie-actions{align-items:stretch;display:grid}.cookie-actions{text-align:center}}

/* Login and authentication */
.auth-page{align-items:center;background:radial-gradient(circle at 12% 20%,rgba(122,174,136,.18),transparent 30%),radial-gradient(circle at 88% 82%,rgba(201,145,58,.13),transparent 28%),var(--cream);display:flex;min-height:calc(100vh - 76px);padding:124px 24px 70px}.auth-shell{border:1px solid var(--border);border-radius:32px;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:minmax(300px,.82fr) minmax(440px,1.18fr);margin:auto;max-width:1040px;overflow:hidden;width:100%}.auth-story{background:linear-gradient(145deg,var(--green-deep),var(--green));color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:650px;padding:54px;position:relative}.auth-story:after{background:radial-gradient(circle,rgba(255,255,255,.13) 0 2px,transparent 3px);background-size:28px 28px;bottom:-60px;content:'';height:280px;opacity:.55;position:absolute;right:-75px;transform:rotate(-8deg);width:280px}.auth-eyebrow{color:var(--green-light);font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.auth-story h1{font-family:'Fraunces',serif;font-size:clamp(40px,5vw,59px);font-weight:400;letter-spacing:-.03em;line-height:1.02;margin:24px 0}.auth-story>div>p:last-child{color:rgba(255,255,255,.7);line-height:1.75;max-width:360px}.auth-trust{display:grid;gap:12px;position:relative;z-index:1}.auth-trust span{color:rgba(255,255,255,.78);font-size:13px}.auth-card{background:var(--white);padding:50px 58px}.auth-card header h2{color:var(--green-deep);font-family:'Fraunces',serif;font-size:37px;font-weight:500;letter-spacing:-.02em;margin:3px 0 8px}.auth-card header>p:last-child{color:var(--text-muted);font-size:14px;line-height:1.6}.auth-form{display:grid;gap:20px;margin-top:30px}.auth-label-row{align-items:center;display:flex;justify-content:space-between}.auth-label-row a,.resend-form button,.auth-support a{color:var(--green);font-size:12px;text-decoration:none}.password-field{position:relative}.password-field .form-input{padding-right:84px}.password-toggle{background:transparent;border:0;color:var(--green);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.auth-submit{justify-content:center;margin-top:2px;width:100%}.auth-error{background:var(--red-pale);border:1px solid rgba(192,57,43,.18);border-radius:12px;color:var(--red);font-size:13px;line-height:1.55;padding:13px 15px}.resend-form{align-items:center;display:flex;gap:5px;justify-content:center;margin-top:16px}.resend-form span{color:var(--text-muted);font-size:12px}.resend-form button{background:none;border:0;cursor:pointer;font-family:inherit;font-weight:600;padding:0}.auth-divider{align-items:center;color:var(--text-muted);display:flex;font-size:11px;gap:12px;margin:28px 0 17px;text-align:center}.auth-divider:before,.auth-divider:after{background:var(--border);content:'';height:1px;flex:1}.signup-options{display:grid;gap:10px}.signup-options>a{align-items:center;border:1px solid var(--border);border-radius:15px;color:var(--text);display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding:13px 15px;text-decoration:none;transition:border-color .2s,background .2s,transform .2s}.signup-options>a:hover{background:var(--green-pale);border-color:var(--green-light);transform:translateY(-1px)}.signup-icon{align-items:center;background:var(--green-pale);border-radius:11px;color:var(--green);display:flex;font-size:18px;height:38px;justify-content:center;width:38px}.signup-options strong,.signup-options small{display:block}.signup-options strong{font-size:13px}.signup-options small{color:var(--text-muted);font-size:11px;margin-top:3px}.signup-options b{color:var(--green)}.auth-support{color:var(--text-muted);font-size:11px;margin-top:22px;text-align:center}
@media(max-width:850px){.auth-page{padding:100px 16px 48px}.auth-shell{grid-template-columns:1fr;max-width:560px}.auth-story{min-height:0;padding:34px}.auth-story h1{font-size:42px;margin:16px 0}.auth-story>div>p:last-child,.auth-trust{display:none}.auth-card{padding:40px}}@media(max-width:480px){.auth-page{padding:84px 10px 32px}.auth-shell{border-radius:22px}.auth-story{padding:26px}.auth-story h1{font-size:34px}.auth-card{padding:30px 22px}.auth-card header h2{font-size:31px}.resend-form{align-items:flex-start;flex-direction:column}.signup-options>a{padding:12px}.site-footer{margin-top:0}}

.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.dashboard-stat{background:linear-gradient(145deg,var(--white),var(--green-pale));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px}.dashboard-stat strong{color:var(--green-deep);display:block;font-family:'Fraunces',serif;font-size:32px;font-weight:600;line-height:1}.dashboard-stat span{color:var(--text-muted);display:block;font-size:14px;line-height:1.35;margin-top:9px}@media(max-width:850px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:460px){.dashboard-stats{grid-template-columns:1fr}}

@media(max-width:700px){.pro-teaser{padding:72px 0!important}.pro-teaser-inner{padding:0 20px!important}.pro-teaser-card{grid-template-columns:1fr!important;gap:36px!important;padding:44px 26px!important}.pro-teaser-stats{min-width:0!important;width:100%}}
@media(max-width:420px){.pro-teaser-stats{grid-template-columns:1fr!important}}

.business-identity{color:rgba(255,255,255,.55)!important;font-size:12px!important;line-height:1.55!important;margin-top:14px!important}.legal-page-wide{max-width:980px}.legal-page-wide>h1:first-child{margin-bottom:10px}.legal-page-wide h2{margin-top:42px}.legal-page-wide h3{color:var(--green-deep);font-size:19px;margin:26px 0 10px}.legal-page-wide ul,.legal-page-wide ol{color:var(--text-muted);display:grid;gap:8px;line-height:1.7;margin:14px 0 18px;padding-left:24px}.legal-table-wrap{margin:20px 0;overflow-x:auto}.legal-table{border-collapse:collapse;font-size:14px;min-width:700px;width:100%}.legal-table th,.legal-table td{border:1px solid var(--border);padding:13px;text-align:left;vertical-align:top}.legal-table th{background:var(--green-pale);color:var(--green-deep)}.legal-table td{color:var(--text-muted)}

/* Professional registration wizard */
.reg-wrap{min-height:calc(100vh - 76px);padding:128px 0 88px;width:min(760px,calc(100% - 40px));margin:0 auto}.reg-wrap>.step-lbl{align-items:center;background:var(--green-pale);border:1px solid rgba(42,74,53,.12);border-radius:999px;color:var(--green);display:inline-flex;font-size:12px;font-weight:600;letter-spacing:.04em;margin:0 0 14px;padding:8px 13px}.reg-progress{background:rgba(42,74,53,.1);border-radius:999px;height:6px;margin:0 0 20px;overflow:hidden;width:100%}.reg-progress span{background:linear-gradient(90deg,var(--green),var(--green-light));border-radius:inherit;display:block;height:100%;width:var(--progress);transition:width .3s ease}.reg-card{background:var(--white);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow-lg);padding:44px 48px}.reg-card .step-title{color:var(--green-deep);font-family:'Fraunces',serif;font-size:clamp(31px,5vw,43px);font-weight:500;letter-spacing:-.025em;line-height:1.08;margin-bottom:30px}.reg-card .form-stack{display:grid;gap:22px}.reg-card .form-row{gap:18px}.reg-card .form-group{min-width:0}.reg-card .form-label{font-size:13px;font-weight:600}.reg-card .form-input,.reg-card .form-select,.reg-card .form-textarea{background:#fff;border-color:rgba(42,74,53,.17);min-height:50px}.reg-card .form-textarea{min-height:145px}.reg-card input[type=number]{appearance:textfield}.reg-card .errorlist{background:var(--red-pale);border-radius:10px;color:var(--red);font-size:12px;line-height:1.45;list-style:none;margin-top:2px;padding:8px 10px}.reg-card .form-hint{line-height:1.55}.reg-card .form-check{align-items:flex-start;background:var(--cream);border:1px solid var(--border);border-radius:14px;padding:15px}.reg-card .form-check input{accent-color:var(--green);display:block;flex:0 0 auto;height:19px;margin-top:1px;width:19px}.reg-card .form-check .check-label{font-size:13px}.reg-card .form-group>div[id^="id_"]{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.reg-card .form-group>div[id^="id_"]>div{min-width:0}.reg-card .form-group>div[id^="id_"] label{align-items:flex-start;background:#fff;border:1px solid rgba(42,74,53,.15);border-radius:13px;cursor:pointer;display:flex;font-size:13px;gap:9px;height:100%;line-height:1.4;padding:12px 13px;transition:.2s}.reg-card .form-group>div[id^="id_"] label:hover{background:var(--green-pale);border-color:var(--green-light)}.reg-card .form-group>div[id^="id_"] input{accent-color:var(--green);flex:0 0 auto;height:17px;margin-top:1px;width:17px}.reg-card .form-file{background:#fff;border:1.5px dashed rgba(42,74,53,.28);border-radius:16px;color:var(--text-muted);font-family:inherit;font-size:13px;padding:14px;width:100%}.reg-card .form-file::file-selector-button{background:var(--green-pale);border:0;border-radius:999px;color:var(--green);cursor:pointer;font-family:inherit;font-weight:600;margin-right:12px;padding:9px 14px}.reg-card .nav-btns{align-items:center;border-top:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;margin-top:8px;padding-top:22px}.reg-card .btn-next,.reg-card .btn-back{border-radius:999px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;min-height:46px;padding:11px 24px;transition:.2s}.reg-card .btn-next{background:var(--green);border:1px solid var(--green);color:#fff;margin-left:auto}.reg-card .btn-next:hover{background:var(--green-deep);box-shadow:0 8px 22px rgba(42,74,53,.2);transform:translateY(-1px)}.reg-card .btn-back{background:transparent;border:1px solid rgba(42,74,53,.2);color:var(--green)}.reg-card .btn-back:hover{background:var(--green-pale)}.reg-card .login-link{border-top:1px solid var(--border);color:var(--text-muted);font-size:13px;margin-top:26px;padding-top:22px;text-align:center}.reg-card .login-link a{color:var(--green);font-weight:600;text-decoration:none}
@media(max-width:680px){.reg-wrap{padding:106px 0 58px;width:min(100% - 24px,760px)}.reg-card{border-radius:22px;padding:30px 22px}.reg-card .step-title{margin-bottom:24px}.reg-card .form-group>div[id^="id_"]{grid-template-columns:1fr}.reg-card .nav-btns{align-items:stretch;flex-direction:column-reverse}.reg-card .btn-next,.reg-card .btn-back{justify-content:center;width:100%}.reg-card .nav-btns>span{display:none}}
@media(max-width:390px){.reg-card{padding:26px 17px}.reg-card .form-file::file-selector-button{display:block;margin:0 0 8px}}

/* Unified family and professional dashboards */
.dashboard-home{width:min(1240px,calc(100% - 40px))}.dashboard-shell{align-items:start;display:grid;gap:28px;grid-template-columns:250px minmax(0,1fr)}.dashboard-sidebar{background:var(--green-deep);border-radius:25px;box-shadow:var(--shadow-md);color:#fff;overflow:hidden;padding:22px;position:sticky;top:98px}.dashboard-user-card{align-items:center;border-bottom:1px solid rgba(255,255,255,.11);display:flex;gap:12px;padding:2px 2px 20px}.dashboard-user-avatar{align-items:center;background:var(--green-light);border-radius:14px;color:var(--green-deep);display:flex;flex:0 0 46px;font-family:'Fraunces',serif;font-size:19px;font-weight:700;height:46px;justify-content:center}.dashboard-user-card strong,.dashboard-user-card small{display:block}.dashboard-user-card strong{font-size:14px;line-height:1.25}.dashboard-user-card small{color:rgba(255,255,255,.58);font-size:11px;margin-top:4px}.dashboard-sidebar .dashboard-menu{align-items:stretch;background:transparent;border:0;box-shadow:none;display:grid;gap:5px;inset:auto;margin:18px 0;padding:0;position:static}.dashboard-menu a{align-items:center;border-radius:11px;color:rgba(255,255,255,.72);display:grid;font-size:13px;gap:10px;grid-template-columns:20px minmax(0,1fr) auto;padding:11px 12px;text-decoration:none;transition:.2s}.dashboard-menu a:hover,.dashboard-menu a.is-active{background:rgba(255,255,255,.1);color:#fff}.dashboard-menu a>span{font-size:17px;text-align:center}.dashboard-menu a>b{align-items:center;background:var(--gold);border-radius:999px;color:#fff;display:flex;font-size:10px;height:20px;justify-content:center;min-width:20px;padding:0 6px}.dashboard-support{background:rgba(255,255,255,.07);border-radius:13px;padding:14px}.dashboard-support p{color:rgba(255,255,255,.58);font-size:11px;margin-bottom:5px}.dashboard-support a{color:#fff;font-size:12px;font-weight:600;text-decoration:none}.dashboard-main{min-width:0}.dashboard-welcome-row{align-items:flex-end;display:flex;gap:24px;justify-content:space-between}.dashboard-welcome-row .btn-primary,.dashboard-welcome-row .btn-outline{flex:0 0 auto;margin-bottom:3px}.dashboard-welcome-row h1{font-size:clamp(38px,5vw,58px)}.dashboard-home .dashboard-stats{gap:13px}.dashboard-home .dashboard-stat{color:inherit;min-height:130px;padding:20px;position:relative;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}.dashboard-home a.dashboard-stat:hover{border-color:rgba(42,74,53,.23);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dashboard-stat-icon{align-items:center;background:rgba(42,74,53,.08);border-radius:10px;color:var(--green);display:flex;font-size:16px;height:34px;justify-content:center;position:absolute;right:16px;top:16px;width:34px}.dashboard-home .dashboard-stat strong{font-size:35px;margin-top:25px}.dashboard-home .dashboard-stat>span:last-child{font-size:12px}.dashboard-grid-primary{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);margin-top:18px}.dashboard-panel-heading{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.status-dot{background:var(--gold);border:5px solid var(--gold-pale);border-radius:50%;height:18px;margin:7px 2px 0 0;width:18px}.status-approvato .status-dot{background:var(--green-light);border-color:var(--green-pale)}.status-rifiutato .status-dot{background:var(--red);border-color:var(--red-pale)}.dashboard-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.dashboard-text-link{color:var(--green);display:inline-flex;font-size:13px;font-weight:600;margin-top:20px;text-decoration:none}.dashboard-location{align-items:center;background:var(--cream);border-radius:14px;display:flex;gap:12px;margin:18px 0;padding:14px}.dashboard-location>span{align-items:center;background:var(--green-pale);border-radius:9px;color:var(--green);display:flex;font-size:18px;height:38px;justify-content:center;width:38px}.dashboard-location strong,.dashboard-location small{display:block}.dashboard-location small{color:var(--text-muted);font-size:11px;margin-top:3px}.dashboard-tags{display:flex;flex-wrap:wrap;gap:7px;margin:-4px 0 20px}.dashboard-tags span{background:var(--green-pale);border-radius:999px;color:var(--green);font-size:11px;padding:7px 10px}.dashboard-guide ol{counter-reset:guide;display:grid;gap:13px;list-style:none;margin:17px 0}.dashboard-guide li{align-items:flex-start;color:var(--text-muted);counter-increment:guide;display:grid;font-size:13px;gap:10px;grid-template-columns:25px 1fr;line-height:1.5}.dashboard-guide li:before{align-items:center;background:var(--green-pale);border-radius:50%;color:var(--green);content:counter(guide);display:flex;font-size:11px;font-weight:700;height:25px;justify-content:center}.dashboard-recent{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:22px;overflow:hidden}.dashboard-section-heading{align-items:flex-end;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:22px 24px}.dashboard-section-heading h2{color:var(--green-deep);font-family:'Fraunces',serif;font-size:27px;font-weight:500;margin-top:4px}.dashboard-section-heading>a{color:var(--green);font-size:12px;font-weight:600;text-decoration:none}.dashboard-request-list{display:grid}.dashboard-request-row{align-items:center;color:var(--text);display:grid;gap:13px;grid-template-columns:42px minmax(0,1fr) auto 72px 16px;padding:15px 24px;text-decoration:none;transition:background .18s}.dashboard-request-row+.dashboard-request-row{border-top:1px solid var(--border)}.dashboard-request-row:hover{background:var(--green-pale)}.request-person{align-items:center;background:var(--cream-dark);border-radius:12px;color:var(--green);display:flex;font-family:'Fraunces',serif;font-size:14px;font-weight:700;height:42px;justify-content:center}.dashboard-request-row strong,.dashboard-request-row small{display:block}.dashboard-request-row strong{font-size:13px}.dashboard-request-row small{color:var(--text-muted);font-size:11px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-request-row time{color:var(--text-muted);font-size:11px;text-align:right}.request-status{border-radius:999px;font-size:10px;font-weight:600;padding:6px 9px}.request-status.status-inviata{background:var(--blue-pale);color:var(--blue)}.request-status.status-accettata{background:var(--green-pale);color:var(--green)}.request-status.status-rifiutata{background:var(--red-pale);color:var(--red)}.request-status.status-chiusa{background:var(--cream-dark);color:var(--text-muted)}.dashboard-request-row>b{color:var(--green)}.dashboard-empty{background:var(--white);border:1px dashed rgba(42,74,53,.24);border-radius:var(--radius-lg);margin-top:22px;padding:38px 24px;text-align:center}.dashboard-empty>span{align-items:center;background:var(--green-pale);border-radius:50%;color:var(--green);display:flex;font-size:21px;height:50px;justify-content:center;margin:0 auto 13px;width:50px}.dashboard-empty h2{color:var(--green-deep);font-family:'Fraunces',serif;font-size:27px}.dashboard-empty p{color:var(--text-muted);font-size:13px;margin:8px auto 18px;max-width:480px}
@media(max-width:1000px){.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{align-items:center;display:flex;gap:15px;padding:15px;position:static}.dashboard-user-card{border:0;border-right:1px solid rgba(255,255,255,.11);flex:0 0 auto;padding:0 16px 0 0}.dashboard-sidebar .dashboard-menu{display:flex;flex:1;gap:4px;margin:0;overflow-x:auto}.dashboard-menu a{flex:0 0 auto;grid-template-columns:20px auto;padding:10px}.dashboard-menu a>b{display:none}.dashboard-support{display:none}}
@media(max-width:760px){.dashboard-home{padding-top:106px;width:min(100% - 24px,1240px)}.dashboard-sidebar{display:block;overflow:hidden}.dashboard-user-card{border:0;border-bottom:1px solid rgba(255,255,255,.11);padding:0 0 13px}.dashboard-sidebar .dashboard-menu{margin:10px -3px 0}.dashboard-menu a{font-size:0;grid-template-columns:24px;padding:10px 12px}.dashboard-menu a>span{font-size:18px}.dashboard-welcome-row{align-items:stretch;display:grid}.dashboard-welcome-row .btn-primary,.dashboard-welcome-row .btn-outline{justify-content:center;width:100%}.dashboard-grid-primary{grid-template-columns:1fr}.dashboard-home .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-request-row{grid-template-columns:40px minmax(0,1fr) auto;padding:13px 15px}.dashboard-request-row .request-status,.dashboard-request-row time{display:none}.dashboard-section-heading{padding:19px}.dashboard-panel{padding:23px}}
@media(max-width:440px){.dashboard-home .dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-home .dashboard-stat{min-height:116px;padding:16px}.dashboard-home .dashboard-stat strong{font-size:30px;margin-top:21px}.dashboard-stat-icon{height:29px;right:12px;top:12px;width:29px}.dashboard-actions{align-items:stretch;display:grid}.dashboard-actions a{text-align:center}.dashboard-data div{align-items:flex-start;gap:12px}.dashboard-data dd{text-align:right}}

.oss-certificate-group{background:var(--gold-pale);border:1px solid rgba(201,145,58,.28);border-radius:18px;padding:18px}.oss-certificate-group[hidden]{display:none}.required-field-heading{align-items:center;display:flex;justify-content:space-between}.required-field-heading strong{background:var(--gold);border-radius:999px;color:#fff;display:inline-block;font-size:9px;letter-spacing:.04em;margin-left:7px;padding:5px 8px;text-transform:uppercase}.certificate-upload-box{align-items:center;display:flex;gap:12px;margin:8px 0 13px}.certificate-icon{align-items:center;background:#fff;border-radius:11px;color:var(--green);display:flex;flex:0 0 38px;font-size:16px;font-weight:700;height:38px;justify-content:center}.certificate-upload-box p{color:var(--text);font-size:12px;line-height:1.45}.certificate-upload-box small{color:var(--text-muted);display:block;font-size:10px;line-height:1.45;margin-top:3px}@media(max-width:480px){.required-field-heading strong{display:block;margin:6px 0 0;width:max-content}.certificate-upload-box{align-items:flex-start}}

/* Payment and subscriptions */
.reg-wrap:has(.payment-intro) .reg-card{max-width:760px}.payment-intro{color:var(--text-muted);line-height:1.65;margin:-8px 0 24px}.plan-choice-group>ul{display:grid;gap:10px;grid-template-columns:repeat(3,1fr);list-style:none;padding:0}.plan-choice-group:last-of-type>ul{grid-template-columns:repeat(2,1fr)}.plan-choice-group li label{align-items:center;background:var(--cream);border:1px solid var(--border);border-radius:14px;cursor:pointer;display:flex;gap:9px;padding:14px}.plan-choice-group input:checked+label,.plan-choice-group li:has(input:checked) label{background:var(--green-pale);border-color:var(--green)}.bank-payment-card{background:linear-gradient(145deg,var(--green-deep),var(--green));border-radius:20px;color:#fff;padding:25px}.bank-payment-card h3{color:#fff;font-family:'Fraunces',serif;font-size:25px;margin:5px 0 20px}.payment-eyebrow{color:var(--green-light);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.bank-payment-card dl{display:grid;gap:9px}.bank-payment-card dl>div{align-items:center;background:rgba(255,255,255,.09);border-radius:11px;display:grid;gap:12px;grid-template-columns:130px 1fr;padding:11px 13px}.bank-payment-card dt{color:rgba(255,255,255,.65);font-size:11px}.bank-payment-card dd{font-weight:600;margin:0}.bank-payment-card code{color:#fff;font-family:monospace;font-size:14px;overflow-wrap:anywhere}.bank-payment-card>p:last-child{color:rgba(255,255,255,.72);font-size:12px;line-height:1.55;margin-top:16px}.payment-terms-note{color:var(--text-muted);font-size:12px;line-height:1.5}.payment-terms-note a{color:var(--green);font-weight:700}.registration-complete{max-width:720px;padding-top:120px}.payment-final{margin-top:20px;text-align:left}.success-check{align-items:center;background:var(--green-pale);border-radius:50%;color:var(--green);display:inline-flex;font-size:25px;height:54px;justify-content:center;width:54px}.dashboard-subscription-card{background:var(--white);border:1px solid var(--border);border-left:5px solid var(--gold);border-radius:20px;box-shadow:var(--shadow-sm);margin-bottom:22px;padding:23px}.dashboard-subscription-card.is-active{border-left-color:var(--green)}.dashboard-subscription-card.is-expired{border-left-color:var(--red)}.subscription-heading{align-items:center;display:flex;gap:25px;justify-content:space-between}.subscription-heading h2{color:var(--green-deep);font-family:'Fraunces',serif;font-size:25px;margin:4px 0}.subscription-heading p{color:var(--text-muted)}.subscription-countdown{background:var(--green-pale);border-radius:14px;min-width:145px;padding:13px;text-align:center}.subscription-countdown strong,.subscription-countdown span{display:block}.subscription-countdown strong{color:var(--green-deep);font-size:22px}.subscription-countdown span{color:var(--text-muted);font-size:10px;margin-top:3px}.bank-details-dashboard{display:grid;gap:10px;grid-template-columns:.65fr 1fr 1.5fr 1fr;margin-top:18px}.bank-details-dashboard>div{background:var(--cream);border-radius:12px;padding:11px}.bank-details-dashboard small,.bank-details-dashboard strong,.bank-details-dashboard code{display:block}.bank-details-dashboard small{color:var(--text-muted);font-size:10px;margin-bottom:5px}.bank-details-dashboard code{color:var(--green-deep);font-size:11px;overflow-wrap:anywhere}
@media(max-width:700px){.plan-choice-group>ul,.plan-choice-group:last-of-type>ul,.bank-details-dashboard{grid-template-columns:1fr}.bank-payment-card dl>div{grid-template-columns:1fr}.subscription-heading{align-items:stretch;display:grid}.subscription-countdown{min-width:0}}

.legal-summary{background:var(--green-pale);border:1px solid var(--green-light);border-radius:16px;margin:22px 0;padding:18px}.legal-summary strong{color:var(--green-deep)}.legal-summary p{margin:5px 0 0}.legal-table-wrap{overflow-x:auto}.legal-table{border-collapse:collapse;margin:14px 0;width:100%}.legal-table th,.legal-table td{border:1px solid var(--border);padding:12px;text-align:left}.legal-table th{background:var(--green-pale);color:var(--green-deep)}.legal-terms details{background:var(--cream);border-radius:12px;padding:13px}.legal-terms summary{color:var(--green);cursor:pointer;font-weight:700}


/* Correzioni per telefoni piccoli */
@media(max-width:480px){
  html,body{max-width:100%;overflow-x:hidden}
  nav{padding:10px 14px}
  .nav-logo{font-size:13px;min-width:0;white-space:nowrap}
  .logo-mark{height:30px;width:30px}
  .nav-toggle{flex:0 0 auto;margin-left:8px}
  .nav-menu{top:50px;max-height:calc(100vh - 50px);overflow-y:auto;padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .page-messages{margin-top:72px;padding:0 12px}
  .directory-page,.account-dashboard,.dashboard-home{width:calc(100% - 24px)}
  .directory-page,.account-dashboard{padding-top:92px}
  .directory-hero h1,.dashboard-heading h1{font-size:clamp(32px,10vw,43px);overflow-wrap:anywhere}
  .directory-filters,.dashboard-panel,.dashboard-subscription-card{border-radius:18px;padding:16px}
  .directory-grid{gap:14px}
  .public-profile-card{padding:18px}
  .public-profile-main,.public-profile-card{min-width:0;width:100%}
  .public-profile-meta{align-items:flex-start;flex-direction:column;gap:7px}
  .btn-primary,.btn-outline,.btn-ghost,.btn-nav{justify-content:center;max-width:100%;white-space:normal}
  .dashboard-home .dashboard-stats{grid-template-columns:1fr}
  .dashboard-data div{display:grid}
  .dashboard-data dd{text-align:left;overflow-wrap:anywhere}
  .message-bubble{max-width:96%;overflow-wrap:anywhere}
  .legal-page{padding-top:96px;width:calc(100% - 24px)}
  .legal-page h1{font-size:clamp(35px,12vw,48px);overflow-wrap:anywhere}
  .legal-page h2{font-size:24px}
  .legal-notice{padding:16px}
  .legal-table{min-width:620px}
  .cookie-banner{bottom:8px;max-height:calc(100vh - 16px);overflow-y:auto;padding:15px;width:calc(100% - 16px)}
  .cookie-actions .btn-primary,.cookie-actions .btn-outline{width:100%}
  .cookie-floating-trigger{bottom:10px;left:10px}
  .reg-wrap{padding-top:86px;width:calc(100% - 16px)}
  .reg-card{border-radius:18px;padding:24px 15px}
  .reg-card .step-title{font-size:clamp(29px,10vw,36px);overflow-wrap:anywhere}
  .form-input,.form-select,.form-textarea{font-size:16px}
  .site-footer{gap:26px;padding:32px 16px}
}
