/* ==========================================================================
   Hack Your Interview — sito ufficiale
   Palette derivata dal logo: viola #5F22AD su nero, giallo solo per i prezzi.
   ========================================================================== */

:root{
  --ground:#08070C;
  --ground-2:#100D18;
  --ground-3:#171128;
  --line:#251E38;
  --ink:#EFEBF7;
  --ink-dim:#9C93B2;
  --violet:#5F22AD;
  --violet-lit:#B47CFF;
  --violet-soft:rgba(95,34,173,.22);
  --price:#FFCF04;
  --on-violet:#FFFFFF;
  --shadow:0 24px 70px -34px rgba(0,0,0,.95);

  --display:"Helvetica Neue",Helvetica,"Arial Black",Arial,sans-serif;
  --body:Georgia,"Iowan Old Style","Times New Roman",serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,"DejaVu Sans Mono",monospace;

  --wrap:1180px;
  --gutter:clamp(18px,4vw,52px);
}

@media (prefers-color-scheme: light){
  :root{
    --ground:#F1EEF7;
    --ground-2:#FBFAFE;
    --ground-3:#E7E1F3;
    --line:#D2CADF;
    --ink:#14101F;
    --ink-dim:#5C5470;
    --violet:#5F22AD;
    --violet-lit:#5F22AD;
    --violet-soft:rgba(95,34,173,.12);
    --price:#8A6A00;
    --shadow:0 20px 50px -36px rgba(20,16,31,.5);
  }
}
:root[data-theme="light"]{
  --ground:#F1EEF7;
  --ground-2:#FBFAFE;
  --ground-3:#E7E1F3;
  --line:#D2CADF;
  --ink:#14101F;
  --ink-dim:#5C5470;
  --violet:#5F22AD;
  --violet-lit:#5F22AD;
  --violet-soft:rgba(95,34,173,.12);
  --price:#8A6A00;
  --shadow:0 20px 50px -36px rgba(20,16,31,.5);
}
:root[data-theme="dark"]{
  --ground:#08070C;
  --ground-2:#100D18;
  --ground-3:#171128;
  --line:#251E38;
  --ink:#EFEBF7;
  --ink-dim:#9C93B2;
  --violet:#5F22AD;
  --violet-lit:#B47CFF;
  --violet-soft:rgba(95,34,173,.22);
  --price:#FFCF04;
  --shadow:0 24px 70px -34px rgba(0,0,0,.95);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}

img{max-width:100%;height:auto;display:block}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--violet-lit);outline-offset:3px}

/* ---------- type primitives ---------- */

.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-dim);display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--violet-lit);flex:none}

h1,h2,h3,h4{
  font-family:var(--display);font-weight:900;letter-spacing:-.035em;line-height:.94;
  text-wrap:balance;margin:0;text-transform:uppercase;
}
h2{font-size:clamp(32px,5.4vw,60px)}
h3{font-size:clamp(19px,2.3vw,26px);letter-spacing:-.02em;line-height:1.05}
h4{font-size:15px;letter-spacing:.01em;line-height:1.2}

.lede{font-size:clamp(18px,2.1vw,22px);line-height:1.5;max-width:36ch}
.dim{color:var(--ink-dim)}

.redact{
  background:#000;color:transparent;padding:0 .3em;border-radius:1px;cursor:help;
  transition:color .25s ease,background .25s ease;
}
:root[data-theme="light"] .redact{background:var(--ink)}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .redact{background:var(--ink)}}
.redact:hover,.redact:focus-visible{background:var(--violet-soft);color:var(--ink);outline:none}

/* ---------- buttons ---------- */

.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;
  padding:11px 18px;border:1px solid var(--violet);
  background:var(--violet);color:var(--on-violet);
  text-decoration:none;font-weight:600;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 0 var(--violet-soft),4px 4px 0 1px var(--violet)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--violet-lit);box-shadow:4px 4px 0 0 var(--violet-soft)}
.btn-lg{padding:15px 26px;font-size:12.5px}

/* ---------- nav ---------- */

.nav{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb,var(--ground) 88%,transparent);
  backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-in{display:flex;align-items:center;gap:20px;height:66px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.brand img{width:38px;height:38px}
.brand-txt{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;font-size:15px;line-height:1}
.brand-txt small{
  display:block;font-family:var(--mono);font-weight:400;font-size:8.5px;
  letter-spacing:.24em;color:var(--ink-dim);margin-top:4px;
}
.nav-links{
  display:flex;gap:22px;margin-left:auto;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
}
.nav-links a{text-decoration:none;color:var(--ink-dim);transition:color .18s}
.nav-links a:hover{color:var(--ink)}
@media (max-width:900px){
  .nav-links{display:none}
  .nav-in .btn{margin-left:auto}
}
@media (max-width:560px){
  .nav-in{gap:12px}
  .brand-txt{display:none}
  .nav-in .btn{padding:10px 14px;font-size:10.5px;letter-spacing:.12em}
}
.theme-btn{
  flex:none;background:none;border:1px solid var(--line);color:var(--ink-dim);
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:8px 10px;
  cursor:pointer;text-transform:uppercase;
}
.theme-btn:hover{border-color:var(--violet-lit);color:var(--ink)}

/* ---------- hero ---------- */

.hero{
  position:relative;padding:clamp(50px,8vw,96px) 0 clamp(40px,6vw,72px);
  border-bottom:1px solid var(--line);overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:-30% 40% 30% -10%;
  background:radial-gradient(closest-side,var(--violet-soft),transparent);
  pointer-events:none;
}
.hero-grid{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(28px,5vw,60px);align-items:center;position:relative;
}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}}
.hero h1{font-size:clamp(42px,8.2vw,98px);margin:20px 0 0}
.hero h1 .lo{
  display:block;font-family:var(--body);font-weight:400;text-transform:none;font-style:italic;
  letter-spacing:-.01em;font-size:clamp(21px,3.2vw,38px);line-height:1.18;color:var(--ink-dim);margin-top:16px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-note{
  font-family:var(--mono);font-size:11.5px;line-height:1.65;
  border-left:2px solid var(--violet-lit);padding-left:12px;margin-top:26px;max-width:46ch;
}
.hero-art{position:relative}
.hero-art img{width:100%;filter:drop-shadow(0 24px 60px rgba(95,34,173,.45))}
@media (max-width:900px){.hero-art{max-width:340px;margin-inline:auto}}

/* ---------- stats ---------- */

.stats{border-bottom:1px solid var(--line);background:var(--ground-2)}
.stats-in{display:grid;grid-template-columns:repeat(4,1fr)}
@media (max-width:760px){.stats-in{grid-template-columns:repeat(2,1fr)}}
.stat{padding:22px var(--gutter);border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
@media (max-width:760px){
  .stat{border-bottom:1px solid var(--line)}
  .stat:nth-child(2n){border-right:0}
}
.stat b{
  display:block;font-family:var(--display);font-weight:900;
  font-size:clamp(26px,3.6vw,38px);letter-spacing:-.04em;line-height:1;
  font-variant-numeric:tabular-nums;
}
.stat span{
  display:block;margin-top:7px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);
}

/* ---------- sections ---------- */

.sec{padding:clamp(56px,8vw,104px) 0;border-bottom:1px solid var(--line)}
.sec-head{display:flex;flex-direction:column;gap:16px;max-width:54ch}

.thesis{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:46px;
}
@media (max-width:820px){.thesis{grid-template-columns:1fr}}
.card-t{background:var(--ground);padding:clamp(22px,2.6vw,32px);display:flex;flex-direction:column;gap:12px}
.card-t .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--violet-lit)}
.card-t p{font-size:15.5px;line-height:1.62;color:var(--ink-dim)}

.pull{
  margin-top:46px;padding:clamp(24px,3vw,38px);
  background:var(--violet);color:var(--on-violet);
  font-family:var(--display);font-weight:900;text-transform:uppercase;
  letter-spacing:-.03em;line-height:.98;font-size:clamp(22px,3.6vw,44px);text-wrap:balance;
}

/* ---------- community ---------- */

.net-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.2vw,26px);margin-top:44px}
@media (max-width:820px){.net-grid{grid-template-columns:1fr}}
.net-card{
  border:1px solid var(--line);background:var(--ground-2);
  padding:clamp(22px,2.8vw,34px);display:flex;flex-direction:column;gap:14px;
}
.net-card .tag{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--on-violet);background:var(--violet);align-self:flex-start;padding:4px 9px;
}
.net-card p{font-size:15.5px;line-height:1.62;color:var(--ink-dim)}
.note{
  font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--ink);
  border-left:2px solid var(--violet-lit);padding-left:12px;
}
.band{
  margin-top:44px;display:grid;grid-template-columns:minmax(0,260px) 1fr;
  gap:clamp(20px,3vw,40px);align-items:center;
  border:1px solid var(--line);background:var(--ground-2);padding:clamp(20px,3vw,34px);
}
@media (max-width:760px){.band{grid-template-columns:1fr}}
.band p{font-size:16px;line-height:1.6;color:var(--ink-dim)}

/* ---------- servizi ---------- */

.svc-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:44px;
}
@media (max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.svc-grid{grid-template-columns:1fr}}
.svc{
  background:var(--ground);padding:clamp(20px,2.4vw,28px);
  display:flex;flex-direction:column;gap:12px;min-height:230px;
  text-decoration:none;transition:background .18s ease;position:relative;
}
.svc:hover{background:var(--ground-3)}
.svc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.svc-ic{width:52px;height:52px;flex:none;border-radius:10px}
.svc .price{
  font-family:var(--mono);font-size:15px;font-weight:700;color:var(--price);
  letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.svc .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim)}
.svc p{font-size:14.5px;line-height:1.58;color:var(--ink-dim);flex:1}
.svc .go{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--violet-lit);display:flex;align-items:center;gap:7px;
}
.svc.is-flag{border-top:3px solid var(--violet)}
.badge{
  position:absolute;top:0;left:0;
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  background:#FFCF04;color:#14101F;padding:4px 9px;font-weight:700;
}
.svc:has(.badge) .svc-top{margin-top:14px}

.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px);margin-top:26px}
@media (max-width:820px){.paths{grid-template-columns:1fr}}
.path{
  border:1px solid var(--line);background:var(--ground-2);
  padding:clamp(18px,2.2vw,26px);display:flex;flex-direction:column;gap:12px;
}
.path img{width:110px;border-radius:8px}
.path p{font-size:14.5px;line-height:1.58;color:var(--ink-dim)}

/* ---------- team ---------- */

.team{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:44px;
}
@media (max-width:900px){.team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.team{grid-template-columns:1fr}}
.member{background:var(--ground);padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;gap:13px}
.member.is-founder{background:var(--ground-3)}
.member img{width:92px;height:92px;border-radius:50%;object-fit:cover}
.member .role{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--violet-lit)}
.member p{font-size:14.5px;line-height:1.58;color:var(--ink-dim)}
.member .quote{
  font-style:italic;color:var(--ink);font-size:14.5px;
  border-top:1px solid var(--line);padding-top:12px;margin-top:auto;
}

/* ---------- recensioni ---------- */

.rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,340px);
  gap:16px;overflow-x:auto;margin-top:42px;padding-bottom:14px;scroll-snap-type:x mandatory;
}
.rail>*{scroll-snap-align:start}
.tst{border:1px solid var(--line);background:var(--ground-2);padding:24px;display:flex;flex-direction:column;gap:12px}
.tst .stars{color:var(--price);letter-spacing:.16em;font-size:13px}
.tst blockquote{margin:0;font-size:15px;line-height:1.6}
.tst .who{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-dim);margin-top:auto;border-top:1px solid var(--line);padding-top:12px;
}

/* ---------- faq ---------- */

.faq{margin-top:40px;border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line)}
summary{
  cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;
  font-family:var(--display);font-weight:900;text-transform:uppercase;
  letter-spacing:-.02em;font-size:clamp(16px,1.9vw,21px);line-height:1.15;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-family:var(--mono);font-weight:400;font-size:19px;color:var(--violet-lit);
}
details[open] summary::after{content:"–"}
details .ans{padding:0 clamp(0px,6vw,80px) 24px 0;color:var(--ink-dim);font-size:15.5px}
details .ans p+p{margin-top:12px}

/* ---------- cta ---------- */

.cta{padding:clamp(56px,9vw,110px) 0;background:var(--violet);color:var(--on-violet)}
.cta .eyebrow{color:rgba(255,255,255,.68)}
.cta .eyebrow::before{background:rgba(255,255,255,.68)}
.cta h2{font-size:clamp(34px,7vw,82px);margin-top:16px}
.cta .lede{color:rgba(255,255,255,.78);margin-top:18px;max-width:48ch;font-size:18px}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.cta .btn{background:#FFFFFF;color:#3B1470;border-color:#FFFFFF}
.cta .btn:hover{box-shadow:4px 4px 0 0 rgba(255,255,255,.3)}
.cta .btn-ghost{background:transparent;color:#FFFFFF;border-color:rgba(255,255,255,.5)}
.cta .btn-ghost:hover{border-color:#FFFFFF;box-shadow:4px 4px 0 0 rgba(255,255,255,.22)}

/* ---------- footer ---------- */

.foot{padding:44px 0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-dim);line-height:1.9}
.foot-in{display:flex;flex-wrap:wrap;gap:24px 40px;justify-content:space-between}
.foot a{text-decoration:none}
.foot a:hover{color:var(--ink)}
.foot-links{display:flex;flex-wrap:wrap;gap:18px;text-transform:uppercase}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
  .btn:hover{transform:none}
}

/* ==========================================================================
   Pagine interne: indice servizi, scheda servizio, gift card, contatti
   ========================================================================== */

.nav-links a.is-current{color:var(--ink)}

/* testata di pagina */
.page-head{
  padding:clamp(46px,7vw,86px) 0 clamp(30px,4vw,48px);
  border-bottom:1px solid var(--line);position:relative;overflow:hidden;
}
.page-head::before{
  content:"";position:absolute;inset:-40% 55% 20% -15%;
  background:radial-gradient(closest-side,var(--violet-soft),transparent);pointer-events:none;
}
.page-head>.wrap{position:relative}
.page-head h1{font-size:clamp(38px,6.4vw,76px);margin:18px 0 0}
.page-head .lede{margin-top:20px}
.page-head .eyebrow a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}
.page-head .eyebrow a:hover{color:var(--ink)}

.sec-title{font-size:clamp(22px,2.8vw,32px)}

/* scheda servizio: testata con prezzo e acquisto */
.product-head{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(24px,4vw,56px);align-items:center;
}
@media (max-width:760px){.product-head{grid-template-columns:1fr}}
.product-ic{width:clamp(96px,14vw,180px);height:auto;border-radius:18px}
@media (max-width:760px){.product-ic{order:-1;width:96px}}

.buy{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:28px}
.buy-price{
  font-family:var(--display);font-weight:900;letter-spacing:-.04em;
  font-size:clamp(34px,5vw,52px);line-height:1;color:var(--price);
  font-variant-numeric:tabular-nums;
}
.buy-note{font-family:var(--mono);font-size:11px;color:var(--ink-dim);margin-top:14px;letter-spacing:.04em}

/* corpo scheda: testo + colonna laterale */
.product-grid{
  display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr);
  gap:clamp(28px,4vw,56px);align-items:start;
}
@media (max-width:860px){.product-grid{grid-template-columns:1fr}}
.prose{display:flex;flex-direction:column;gap:18px;margin-top:22px;max-width:64ch}
.prose p{font-size:16.5px;line-height:1.7;color:var(--ink-dim)}
.prose h3{margin-top:14px;font-size:19px}
.prose .note{
  font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--ink);
  border-left:2px solid var(--violet-lit);padding-left:14px;
}

.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.ticks li{position:relative;padding-left:26px;font-size:16px;line-height:1.6;color:var(--ink-dim)}
.ticks li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:9px;height:9px;background:var(--violet);border-radius:2px;
}

.side-col{display:flex;flex-direction:column;gap:18px;position:sticky;top:88px}
@media (max-width:860px){.side-col{position:static}}
.meta{margin:0;border:1px solid var(--line);background:var(--ground-2)}
.meta-row{padding:14px 18px;border-bottom:1px solid var(--line)}
.meta-row:last-child{border-bottom:0}
.meta dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-dim);margin-bottom:6px;
}
.meta dd{margin:0;font-size:15px;line-height:1.5}
.side-card{
  border:1px solid var(--line);background:var(--ground-2);padding:22px;
  display:flex;flex-direction:column;gap:12px;align-items:flex-start;
}
.side-card p{font-size:14.5px;line-height:1.6;color:var(--ink-dim)}

/* tabella prezzi */
.table-wrap{overflow-x:auto;margin-top:24px;border:1px solid var(--line)}
.price-table{border-collapse:collapse;width:100%;min-width:460px;background:var(--ground-2)}
.price-table th,.price-table td{padding:13px 18px;text-align:left;border-bottom:1px solid var(--line)}
.price-table thead th{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-dim);font-weight:400;
}
.price-table tbody tr:last-child td{border-bottom:0}
.price-table td a{text-decoration:none;border-bottom:1px solid var(--violet-lit)}
.price-table td a:hover{color:var(--violet-lit)}
.price-table .num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--price)}
.price-table td.dim{font-family:var(--mono);font-size:12px;letter-spacing:.04em}

/* membri senza foto */
.avatar-txt{
  width:92px;height:92px;border-radius:50%;display:grid;place-items:center;
  background:var(--violet);color:#fff;
  font-family:var(--display);font-weight:900;font-size:28px;letter-spacing:-.03em;
}
.member .quote a{text-decoration:none;color:var(--violet-lit);font-style:normal;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
