/* Copyright (C) Gregorio Antonio Curello e Gruppo Fotografico Curello. */
:root{
  --bg:#070708;
  --panel: rgba(255,255,255,.04);
  --panel2: rgba(0,0,0,.22);
  --text:#fff;
  --muted:rgba(255,255,255,.66);
  --line:rgba(255,255,255,.10);
  --line2:rgba(255,255,255,.06);
  --shadow: 0 22px 70px rgba(0,0,0,.65);
  --r:18px;
  --r2:24px;
  --max:980px;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial}
html,body{max-width:100%;overflow-x:hidden}
body{
  color:var(--text);
  min-height:100vh;
  background:
    radial-gradient(1000px 700px at 50% -220px, rgba(255,255,255,.12), transparent 60%),
    radial-gradient(900px 600px at 85% 0%, rgba(255,255,255,.06), transparent 70%),
    var(--bg);
}
a{color:inherit;text-decoration:none}
.container{width:min(var(--max),92vw);margin:0 auto}
.top{
  position:sticky;top:0;z-index:50;
  background:rgba(7,7,8,.60);
  backdrop-filter: blur(14px);
  border-bottom:1px solid var(--line2);
}
.top-inner{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 0;
}
.brand{display:flex;align-items:center;gap:10px}
.brand img{height:34px;display:block;filter:drop-shadow(0 14px 35px rgba(0,0,0,.55))}
.nav{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end
}
.pill{
  display:inline-flex;align-items:center;justify-content:center;min-height:42px;
  padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);color:rgba(255,255,255,.90);font-weight:900;line-height:1;white-space:nowrap;
  transition:transform .15s ease,background .15s ease,border-color .15s ease
}
.pill:hover{transform:translateY(-1px);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18)}
.pill.primary{background:#fff;color:#000;border-color:transparent}
.pill.primary:hover{background:rgba(255,255,255,.92)}
main{padding:22px 0 70px}

.shell{
  border-radius:var(--r2);
  border:1px solid var(--line2);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow: var(--shadow);
  padding: 16px;
}

.hero{
  padding: 10px 4px 6px 4px;
}
.h1{
  font-size: clamp(1.55rem, 5.2vw, 2.35rem);
  font-weight: 950;
  letter-spacing: -.05em;
  line-height: 1.06;
}
.sub{
  margin-top:10px;
  color: var(--muted);
  line-height: 1.65;
  max-width: 80ch;
  font-size: 1rem;
}
.anim{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(0,0,0,.18);
  color: rgba(255,255,255,.92);
  font-weight: 900;
  max-width: 100%;
}
.anim span{
  opacity:.92;
}
.anim strong{
  display:inline-block;
  min-width: 160px;
}
.fade{
  transition: opacity .35s ease, transform .35s ease;
}
.fade.out{ opacity:0; transform: translateY(3px); }
.contact-choices{
  display:grid;
  gap:10px;
  margin-top:16px;
}
.contact-choice{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:76px;
  padding:12px;
  border-radius:16px;
  border:1px solid var(--line2);
  background:rgba(0,0,0,.18);
  transition:transform .15s ease, border-color .15s ease, background .15s ease;
}
.contact-choice:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
}
.contact-choice.primary{
  background:#fff;
  color:#000;
  border-color:transparent;
}
.contact-choice.primary .choice-sub{color:rgba(0,0,0,.58)}
.contact-choice.primary svg path{stroke:#000}
.choice-icon{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border-radius:14px;
  display:grid;
  place-items:center;
  border:1px solid var(--line2);
  background:rgba(255,255,255,.05);
}
.contact-choice.primary .choice-icon{
  border-color:rgba(0,0,0,.10);
  background:rgba(0,0,0,.04);
}
.contact-choice.gyg{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
}
.choice-title{
  display:block;
  font-weight:950;
  letter-spacing:-.02em;
}
.choice-sub{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.35;
}
@media(min-width:760px){
  .contact-choices{grid-template-columns:repeat(3,1fr)}
  .contact-choice{align-items:flex-start}
}

.alert{
  margin-top:14px;
  border-radius: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line2);
  background: rgba(0,0,0,.18);
  color: rgba(255,255,255,.92);
}
.alert.ok{ background: rgba(255,255,255,.07); }
.alert.err{ border-color: rgba(255,80,80,.35); background: rgba(255,80,80,.10); }

.divider{
  margin: 18px 0;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
}

/* services - minimal list */
.services{
  display:grid;
  gap: 10px;
  margin-top: 12px;
}
.service-card{
  border-radius: 16px;
  border:1px solid var(--line2);
  background: rgba(0,0,0,.18);
  padding: 12px 12px;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .15s ease, background .15s ease, transform .12s ease;
}
.service-card:hover{ border-color: rgba(255,255,255,.16); }
.service-card:active{ transform: scale(.99); }
.service-card.selected{
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.06);
}
.service-row{
  display:flex;
  align-items:flex-start;
  gap: 12px;
}
.ico{
  width:40px;height:40px;
  border-radius: 14px;
  border:1px solid var(--line2);
  background: rgba(255,255,255,.04);
  display:grid;place-items:center;
  flex: 0 0 auto;
}
.s-title{
  font-weight: 950;
  letter-spacing: -.02em;
}
.s-desc{
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.45;
  font-size: .95rem;
}
.s-meta{
  margin-top: 10px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.price{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.20);
  font-weight: 950;
}
.pick{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.92);
  font-weight: 950;
}
@media(min-width:900px){
  .services{ grid-template-columns: 1fr 1fr; }
}

/* form - minimal */
.form{
  margin-top: 14px;
  display:grid;
  gap: 10px;
}
.row{
  display:grid;
  gap: 10px;
}
@media(min-width:900px){
  .row.two{ grid-template-columns: 1fr 1fr; }
}
label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.92rem;
  font-weight: 900;
  color: rgba(255,255,255,.88);
}
input,select,textarea{
  width:100%;
  border-radius: 14px;
  border:1px solid var(--line2);
  background: rgba(0,0,0,.22);
  color:#fff;
  padding: 12px;
  outline:none;
  font-size: 16px;
}
input:focus,select:focus,textarea:focus{
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 0 0 3px rgba(255,255,255,.06);
}
textarea{ min-height: 110px; resize: vertical; }
.hint{
  color: rgba(255,255,255,.45);
  font-size: .85rem;
  line-height: 1.45;
  margin-top: 6px;
}
.place-other{
  margin-top:10px;
}
.btn{
  width:100%;
  border:none;
  border-radius:999px;
  padding: 14px 16px;
  font-weight: 950;
  cursor:pointer;
  background:#fff;
  color:#000;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.btn[disabled]{ opacity:.65; cursor:not-allowed; }
.hp{ position:absolute; left:-9999px; opacity:0; }

/* extras - very minimal */
.extras{
  margin-top: 10px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.extra-pill{
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.03);
  color: rgba(255,255,255,.88);
  font-weight: 900;
}
.footer{
  margin-top: 18px;
  border-top: 1px solid var(--line2);
  padding-top: 16px;
  color: rgba(255,255,255,.55);
  text-align:center;
  font-size: .92rem;
}
