/* Boutons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 22px;border-radius:999px;
  font-family:var(--ff-ui);font-weight:600;font-size:.96rem;
  text-decoration:none;border:none;cursor:pointer;
  transition:background var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);
  min-height:48px;line-height:1;
}
.btn svg{width:18px;height:18px;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 16px -8px var(--accent-strong);}
.btn-primary:hover{background:var(--accent-strong);color:#fff;transform:translateY(-1px);}
.btn-wa{background:var(--wa-green);color:#fff;}
.btn-wa:hover{background:#1FB456;color:#fff;transform:translateY(-1px);}
.btn-line{background:transparent;color:var(--text);border:1.5px solid var(--text);}
.btn-line:hover{background:var(--text);color:var(--bg);}
.btn-ghost{background:transparent;color:var(--accent);}
.btn-ghost:hover{background:var(--accent-soft);}

/* Chips */
.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent-strong);
  font-family:var(--ff-ui);font-weight:600;font-size:.85rem;
  border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);
}
.chip-light{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.28);}

/* Cards (LAY-5 = card stripe) */
.c-stripe{
  border-left:4px solid var(--accent);
  background:color-mix(in srgb,var(--text) 3%,var(--bg));
  border-radius:0 14px 14px 0;
  padding:24px 26px;
  transition:transform var(--t-fast),box-shadow var(--t-fast);
}
.c-stripe:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px -18px rgba(31,53,49,.35);
}
.c-stripe h3{font-family:var(--ff-display);font-weight:500;margin:0 0 8px;color:var(--text);}
.c-stripe p{margin:0;color:var(--text-2);font-size:.95rem;}
.c-stripe .svc-icon{
  display:inline-grid;place-items:center;width:38px;height:38px;
  border-radius:10px;background:var(--accent-soft);color:var(--accent);
  margin-bottom:14px;
}
.c-stripe .svc-icon svg{width:22px;height:22px;}

/* Frame photo signature */
.photo-frame{
  position:relative;width:100%;max-width:520px;margin:0 auto;
  border-radius:14px;overflow:hidden;
  box-shadow:0 22px 50px -28px rgba(31,53,49,.45);
}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3;filter:saturate(1.04) contrast(1.02);}
.frame-tag{
  position:absolute;left:14px;bottom:14px;
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;background:rgba(31,53,49,.78);color:#fff;
  border-radius:999px;backdrop-filter:blur(4px);
  font-family:var(--ff-ui);font-size:.74rem;text-transform:uppercase;letter-spacing:.16em;
}
.frame-tag em{font-family:var(--ff-display);font-style:italic;font-weight:600;text-transform:none;letter-spacing:0;font-size:.92rem;color:var(--accent-2);}

/* Modal mentions legales */
.ml-modal{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;}
.ml-modal[hidden]{display:none;}
.ml-overlay{position:absolute;inset:0;background:rgba(15,28,25,.62);}
.ml-box{
  position:relative;background:var(--bg);color:var(--text);
  max-width:540px;width:calc(100% - 32px);
  max-height:80vh;overflow-y:auto;
  padding:28px 30px;border-radius:16px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.45);
}
.ml-box h2{font-family:var(--ff-display);font-size:1.5rem;margin:0 0 10px;color:var(--text);}
.ml-box h3{font-family:var(--ff-display);font-size:1rem;margin:18px 0 6px;color:var(--accent-strong);}
.ml-box p{font-size:.9rem;color:var(--text-2);line-height:1.55;}
.ml-close{
  position:absolute;top:14px;right:14px;
  width:36px;height:36px;border-radius:50%;
  background:transparent;border:1px solid var(--border);color:var(--text);
  display:grid;place-items:center;cursor:pointer;
}
.ml-close:hover{background:var(--accent-soft);}

/* Form */
.form-grid{display:grid;gap:14px;}
.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:600;color:var(--text);}
.form-grid input,.form-grid textarea{
  font-family:var(--ff-body);font-size:1rem;color:var(--text);
  background:var(--surface);border:1.5px solid var(--border);
  border-radius:10px;padding:13px 14px;outline:none;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
  width:100%;
}
.form-grid input:focus,.form-grid textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);}
.form-grid textarea{resize:vertical;min-height:120px;}
.form-msg{padding:10px 14px;border-radius:8px;font-size:.92rem;margin-top:6px;}
.form-msg.ok{background:var(--accent-soft);color:var(--accent-strong);}
.form-msg.err{background:#FDECEA;color:#A23A2A;}
