:root{--bg:#f8fafc;--surface:#ffffff;--border:#e2e8f0;--text:#0f172a;--text-muted:#64748b;--brand:#0d9488;--brand-dark:#115e59;--accent:#f97316;--radius:10px;--focus-ring:0 0 0 3px rgba(13,148,136,0.25)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:6px}.container{max-width:980px;margin:0 auto;padding:0 1.5rem}@media (max-width:640px){.container{padding:0 1rem}}.site-header{background:var(--surface);border-bottom:1px solid var(--border);padding:.75rem 0}.site-header .container{justify-content:space-between}.logo,.site-header .container{display:flex;align-items:center}.logo{gap:.5rem;font-weight:700;color:var(--text);font-size:1.1rem}.logo-mark{font-size:1.3rem}.site-header nav{display:flex;gap:1.25rem}.site-main{padding:2rem 0 4rem;min-height:calc(100vh - 180px)}.site-footer{background:#0f172a;color:#cbd5e1;padding:2rem 0;font-size:.9rem}.site-footer a{color:#93c5fd}.site-footer nav{display:flex;gap:1.25rem;margin-top:.5rem}.hero{position:relative;background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;padding:4rem 2rem;border-radius:16px;text-align:center;margin-bottom:2rem;overflow:hidden}.hero__watermark{position:absolute;right:-80px;top:50%;transform:translateY(-50%);width:520px;height:520px;color:#fff;opacity:.08;pointer-events:none}@media (max-width:640px){.hero__watermark{width:320px;height:320px;right:-100px;opacity:.07}}.hero>:not(.hero__watermark){position:relative}.hero h1{font-size:2.5rem;margin:0 0 .75rem;font-weight:800;letter-spacing:-.02em;line-height:1.15}.hero p{opacity:.92;font-size:1.1rem;max-width:540px;margin:0 auto 1.75rem}@media (max-width:640px){.hero{padding:2.5rem 1.25rem}.hero h1{font-size:1.75rem}.hero p{font-size:1rem}}.search-form{display:flex;gap:.5rem;max-width:600px;margin:0 auto}.search-form input{flex:1 1;padding:.75rem 1rem}.search-form button,.search-form input{border:none;border-radius:var(--radius);font-size:1rem}.search-form button{padding:.75rem 1.5rem;background:var(--accent);color:#0f172a;font-weight:600;cursor:pointer}.search-form button:hover{background:#fbbf24}.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:1rem;gap:1rem;margin:2rem 0}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:center}.stat-card .value{font-size:2rem;font-weight:700;color:var(--brand)}.stat-card .label{color:var(--text-muted);font-size:.9rem}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filters input,.filters select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.9rem}.jobs-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.jobs-hero__title{margin:0 0 .25rem;font-size:1.6rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.jobs-hero__subtitle{margin:0;color:var(--text-muted);font-size:.95rem}.search-form--compact{margin:0;flex:0 0 auto;max-width:420px;gap:.4rem}.search-form--compact input{padding:.6rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.9rem;min-width:240px}.search-form--compact input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(13,148,136,.18)}.search-form--compact button{padding:.6rem 1.1rem;background:var(--text);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;font-size:.9rem;transition:background .12s}.search-form--compact button:hover{background:#1f2937}.jobs-layout{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:1fr}@media (min-width:880px){.jobs-layout{grid-template-columns:260px minmax(0,1fr);gap:2rem}}.jobs-main{min-width:0}.jobs-main__toolbar{justify-content:space-between;margin-bottom:1rem}.jobs-main__toolbar,.jobs-main__toolbar-left{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.jobs-main__toolbar-left .view-toggle{margin-bottom:0}.jobs-main__count{margin:0;font-size:.9rem;color:var(--text-muted);font-weight:500}.jobs-main__empty{padding:3rem 1rem;text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:12px}.filters{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;font-size:.875rem;align-self:start}@media (min-width:880px){.filters{position:-webkit-sticky;position:sticky;top:1rem}}.filters__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.filters__title{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.01em}.filters__reset{font-size:.75rem;color:var(--text-muted);text-decoration:underline}.filters__reset:hover{color:var(--brand)}.filter-group{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.filter-group:last-child{border:none;padding-bottom:0;margin-bottom:0}.filter-group__title{margin:0 0 .5rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted)}.filter-group__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem;max-height:240px;overflow-y:auto}.filter-option{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;border-radius:6px;text-decoration:none;color:#374151;font-size:.875rem;transition:background .1s}.filter-option:hover{background:var(--bg);text-decoration:none}.filter-option--active{background:#eff6ff;color:var(--brand-dark);font-weight:600}.filter-option--active:hover{background:#dbeafe}.filter-option__check{font-size:.95rem;line-height:1;width:14px;text-align:center;color:var(--text-muted)}.filter-option--active .filter-option__check{color:var(--brand)}.filter-option__label{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-option__count{font-size:.75rem;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.filter-option--active .filter-option__count{color:var(--brand-dark)}.filters-wrap{display:contents}.filters-toggle{display:none;position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);z-index:30;padding:.7rem 1.4rem;background:var(--text);border:none;font-weight:600;font-size:.9rem;box-shadow:0 6px 20px rgba(0,0,0,.2);cursor:pointer;gap:.5rem}.filters-toggle,.filters-toggle__badge{color:#fff;border-radius:999px;align-items:center}.filters-toggle__badge{display:inline-flex;justify-content:center;min-width:20px;height:20px;padding:0 .4rem;background:var(--brand);font-size:.75rem;font-weight:700;margin-left:.5rem}@media (max-width:879px){.filters-wrap .filters{display:none}.filters-toggle{display:inline-flex}.filters-wrap--open .filters{display:block}.filters-wrap--open .filters-drawer__panel{position:fixed;inset:0 0 0 auto;width:min(100%,360px);background:var(--surface);z-index:40;overflow-y:auto;padding:1rem;box-shadow:-8px 0 24px rgba(0,0,0,.1);animation:slide-in .2s ease}.filters-wrap--open .filters-drawer__scrim{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:35;border:none;cursor:pointer;animation:fade-in .2s ease}.filters-wrap--open .filters-drawer__close{position:absolute;top:.75rem;right:.75rem;width:36px;height:36px;background:var(--bg);border:1px solid var(--border);border-radius:999px;cursor:pointer;font-size:.95rem}}@keyframes slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sort-dropdown{display:inline-flex;align-items:center;gap:.4rem;margin:0}.sort-dropdown__label{font-size:.85rem;color:var(--text-muted);font-weight:500}.sort-dropdown__select{padding:.45rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:.85rem;font-weight:500;color:var(--text);cursor:pointer}.sort-dropdown__select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px rgba(13,148,136,.18)}.sort-dropdown__submit{padding:.4rem .8rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-size:.85rem;cursor:pointer}.job-list{display:flex;flex-direction:column;gap:.75rem}.job-card{display:flex;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.5rem;transition:box-shadow .12s ease,border-color .12s ease}.job-card:hover{box-shadow:0 4px 14px rgba(15,23,42,.07);border-color:#cbd5e1}.job-card:has(a:focus-visible){border-color:var(--brand);box-shadow:var(--focus-ring)}.job-card a:focus-visible{box-shadow:none}.job-card__avatar{flex:0 0 48px;width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.95rem;letter-spacing:.5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.job-card__body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.5rem}.job-card__title{margin:0;font-size:1.05rem;line-height:1.4;font-weight:600}.job-card__title a{color:var(--text);text-decoration:none}.job-card__title a:hover{text-decoration:underline}.job-card__company{margin:0;font-size:.875rem;color:var(--text-muted)}.job-card__company strong{color:#374151;font-weight:600}.job-card__badges{display:flex;gap:.4rem;flex-wrap:wrap;margin:0;padding:0;list-style:none}.badge{display:inline-block;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:500;white-space:nowrap}.badge--salary{background:#fef9c3;color:#713f12;font-weight:600}.badge--sector{background:#f1f5f9;color:#475569;font-weight:500}.job-card__snippet{margin:0;font-size:.875rem;line-height:1.5;color:#4b5563;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.75rem;color:#6b7280}.job-card__posted{font-weight:500}.source-pill{display:inline-block;padding:.18rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.2px}@media (max-width:640px){.job-card{padding:1rem;gap:.75rem}.job-card__avatar{width:40px;height:40px;flex-basis:40px;font-size:.85rem}.job-card__title{font-size:1rem}}.job-detail__breadcrumb{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem}.job-detail__breadcrumb a{color:var(--text-muted)}.job-detail__breadcrumb a:hover{color:var(--brand)}.job-detail{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:2rem}.job-detail__header{display:flex;gap:1.25rem;align-items:flex-start;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.job-detail__avatar{flex:0 0 64px;width:64px;height:64px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.2rem;letter-spacing:.5px}.job-detail__heading{flex:1 1;min-width:0}.job-detail__heading h1{margin:0 0 .5rem;font-size:1.75rem;line-height:1.25;font-weight:700;color:#111827}.job-detail__company{margin:0 0 .75rem;font-size:1rem;color:var(--text-muted)}.job-detail__company strong{color:#374151;font-weight:600}.job-detail__pills{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.job-detail__posted{font-size:.8rem;color:var(--text-muted)}.job-detail__expires{font-size:.75rem;font-weight:600;padding:.18rem .6rem;border-radius:999px}.job-detail__expires--warn{background:#fef3c7;color:#92400e}.job-detail__expires--danger{background:#fee2e2;color:#991b1b}.source-pill--link{text-decoration:none;transition:opacity .12s}.source-pill--link:hover{opacity:.85;text-decoration:none}.job-detail__layout{display:grid;grid-gap:2rem;gap:2rem;margin-top:1.5rem}@media (min-width:960px){.job-detail__layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}}.job-detail__main{min-width:0}.job-detail__main>section{margin-top:2.25rem}.job-detail__main>section:first-child{margin-top:0}.job-detail__main h2{font-size:1.15rem;font-weight:700;color:#111827;margin:0 0 .75rem}.job-detail__main h3{font-size:1rem;font-weight:600;color:#1f2937;margin:1.25rem 0 .5rem}.job-detail__main p{margin:0 0 .75rem;line-height:1.65;color:#374151}.job-detail__main ul{margin:0 0 1rem;padding-left:1.25rem;color:#374151;line-height:1.65}.job-detail__main li{margin-bottom:.35rem}.job-detail__main li::marker{color:var(--brand)}.job-detail__facts{list-style:none;margin:0 0 .5rem;padding:1rem 1.25rem;background:var(--bg);border-radius:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:1rem;gap:1rem}.job-detail__facts li{display:flex;flex-direction:column;gap:.2rem;min-width:0}.job-detail__fact-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;font-weight:600;color:var(--text-muted)}.job-detail__fact-value{font-size:.95rem;font-weight:500;color:#111827}.job-detail__truncation-notice{font-size:.85rem;color:var(--text-muted);font-style:italic;margin-top:1rem!important}.job-detail__address{font-size:.9rem!important;color:var(--text-muted)!important}.job-detail__rome code{background:#f1f5f9;padding:.1rem .4rem;border-radius:4px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.85rem}.job-detail__duplicates ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.job-detail__duplicates a{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;background:var(--bg);border-radius:10px;text-decoration:none;color:var(--text);border:1px solid transparent;transition:border-color .12s}.job-detail__duplicates a:hover{border-color:var(--border);text-decoration:none}.job-detail__duplicate-title{font-size:.9rem;color:#374151}.job-detail__sidebar{display:flex;flex-direction:column;gap:1.25rem}@media (min-width:960px){.job-detail__sidebar{position:-webkit-sticky;position:sticky;top:1rem;align-self:start}}.job-detail__cta-box{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.btn-primary--block{display:block;text-align:center;width:100%}.job-detail__cta-note{margin:0!important;font-size:.8rem!important;color:var(--text-muted)!important;line-height:1.4!important}.job-detail__sidebar-facts{margin:0;padding:1.25rem;background:var(--bg);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:.75rem}.job-detail__sidebar-facts>div{display:flex;flex-direction:column;gap:.2rem}.job-detail__sidebar-facts dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;font-weight:600;color:var(--text-muted)}.job-detail__sidebar-facts dd{margin:0;font-size:.9rem;font-weight:500;color:#111827}@media (max-width:640px){.job-detail{padding:1.25rem}.job-detail__heading h1{font-size:1.35rem}.job-detail__avatar{width:52px;height:52px;flex-basis:52px;font-size:1rem}}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:var(--brand);border-radius:var(--radius);font-weight:600;border:none;cursor:pointer}.btn-primary,.btn-primary:hover{color:white;text-decoration:none}.btn-primary:hover{background:var(--brand-dark)}.pagination{display:flex;justify-content:center;gap:.5rem;margin-top:2rem}.pagination a,.pagination span{padding:.5rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.pagination .current{background:var(--brand);color:white;border-color:var(--brand)}.legal-page{max-width:720px}.legal-page h1{margin-top:0}.legal-page h2{margin-top:2rem}@media (max-width:640px){.hero h1{font-size:1.75rem}.search-form{flex-direction:column}.site-header .container{flex-direction:column;gap:.5rem}}.home-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.home-section-header h2{margin:0}.home-section-header .view-toggle{margin-bottom:0}.view-toggle{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;margin-bottom:1.25rem;gap:.25rem}.view-toggle__btn{padding:.5rem 1.25rem;border:none;background:transparent;border-radius:calc(var(--radius) - 4px);font-weight:600;font-size:.95rem;cursor:pointer;color:#64748b;transition:background .12s,color .12s}.view-toggle__btn:hover{color:var(--brand)}.view-toggle__btn.is-active{background:var(--brand);color:white}.map-container{overflow:hidden}.map-container,.map-error,.map-loading{border:1px solid var(--border);border-radius:var(--radius)}.map-error,.map-loading{height:600px;display:flex;align-items:center;justify-content:center;background:#f8fafc;color:#64748b;font-size:.95rem}.map-error{color:#b91c1c}.map-popup{min-width:200px;max-width:260px;padding:.25rem .1rem}.map-popup__title{display:block;font-size:.95rem;line-height:1.3;color:#0f172a;margin-bottom:.35rem}.map-popup__commune{font-size:.8rem;color:#64748b;margin-bottom:.5rem}.map-popup__link{display:inline-block;font-size:.85rem;font-weight:600;color:var(--brand)}.map-popup__link:hover{color:var(--brand-dark)}.map-unlocated-callout{margin-top:1rem;padding:.75rem 1rem;background:#f1f5f9;border-left:3px solid var(--brand);border-radius:4px;font-size:.9rem;color:#334155}.map-unlocated-callout strong{color:var(--brand-dark)}