/* ==========================================================================
   ConjugaPrisma — base, layout e componentes
   ========================================================================== */

/* --- Reset enxuto --------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--cp-font-body);font-size:var(--cp-fs-base);
  line-height:var(--cp-lh);color:var(--cp-body);background:var(--cp-bg);
  -webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--cp-primary);text-decoration:none;transition:color var(--cp-transition)}
a:hover{color:var(--cp-primary-dark)}
h1,h2,h3,h4,h5,h6{font-family:var(--cp-font-head);font-weight:600;color:var(--cp-dark);
  line-height:var(--cp-lh-tight);margin:0 0 var(--cp-4);text-transform:uppercase;
  letter-spacing:.02em}
h1{font-size:var(--cp-fs-3xl)} h2{font-size:var(--cp-fs-2xl)} h3{font-size:var(--cp-fs-xl)}
h4{font-size:var(--cp-fs-lg)}  h5{font-size:var(--cp-fs-md)}  h6{font-size:var(--cp-fs-base)}
p{margin:0 0 var(--cp-4)}
ul,ol{margin:0 0 var(--cp-4);padding-left:1.25rem}
hr{border:0;border-top:1px solid var(--cp-line);margin:var(--cp-6) 0}
table{border-collapse:collapse;width:100%}

/* Melhoria de acessibilidade: foco visivel em tudo o que e' focavel.
   O Porto suprimia o outline; aqui devolvemo-lo de forma consistente. */
:focus-visible{outline:2px solid var(--cp-primary);outline-offset:2px;border-radius:2px}

.cp-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cp-skip-link{position:absolute;left:-9999px;top:0;z-index:var(--cp-z-modal);
  background:var(--cp-primary);color:#fff;padding:var(--cp-3) var(--cp-5)}
.cp-skip-link:focus{left:0;color:#fff}

/* --- Layout --------------------------------------------------------------- */
.cp-container{width:100%;max-width:var(--cp-container);margin-inline:auto;
  padding-inline:var(--cp-container-pad)}
.cp-container--wide{max-width:1440px}
.cp-row{display:flex;flex-wrap:wrap;margin-inline:calc(var(--cp-container-pad)*-1)}
.cp-col{padding-inline:var(--cp-container-pad);width:100%}
.cp-grid{display:grid;gap:var(--cp-5)}
.cp-grid--2{grid-template-columns:repeat(2,1fr)}
.cp-grid--3{grid-template-columns:repeat(3,1fr)}
.cp-grid--4{grid-template-columns:repeat(4,1fr)}
.cp-grid--6{grid-template-columns:repeat(6,1fr)}
.cp-section{padding-block:var(--cp-7)}
.cp-section--alt{background:var(--cp-bg-alt)}
.cp-section__title{text-align:center;margin-bottom:var(--cp-6);position:relative}
.cp-section__title::after{content:"";display:block;width:60px;height:2px;
  background:var(--cp-primary);margin:var(--cp-3) auto 0}
.cp-main{min-height:40vh}

@media (max-width:991px){
  .cp-grid--4,.cp-grid--6{grid-template-columns:repeat(3,1fr)}
  .cp-grid--3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .cp-grid--2,.cp-grid--3,.cp-grid--4,.cp-grid--6{grid-template-columns:repeat(2,1fr)}
  .cp-section{padding-block:var(--cp-6)}
  h1{font-size:var(--cp-fs-2xl)} h2{font-size:var(--cp-fs-xl)}
}
@media (max-width:479px){
  .cp-grid--2,.cp-grid--3,.cp-grid--4,.cp-grid--6{grid-template-columns:1fr}
}

/* --- Botoes --------------------------------------------------------------- */
.cp-btn,.button,button.button,input[type=submit],
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--cp-2);
  font-family:var(--cp-font-head);font-size:var(--cp-fs-sm);font-weight:600;
  text-transform:uppercase;letter-spacing:.04em;line-height:1;
  padding:var(--cp-3) var(--cp-5);border:1px solid var(--cp-primary);border-radius:var(--cp-radius);
  background:var(--cp-primary);color:#fff;cursor:pointer;text-align:center;
  transition:background var(--cp-transition),border-color var(--cp-transition),color var(--cp-transition)}
.cp-btn:hover,.button:hover,button.button:hover,input[type=submit]:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover{
  background:var(--cp-primary-dark);border-color:var(--cp-primary-dark);color:#fff}
.cp-btn[disabled],.button[disabled],.cp-btn.is-loading{opacity:.6;pointer-events:none}
.cp-btn--ghost{background:transparent;color:var(--cp-primary)}
.cp-btn--ghost:hover{background:var(--cp-primary);color:#fff}
.cp-btn--dark{background:var(--cp-dark);border-color:var(--cp-dark)}
.cp-btn--dark:hover{background:#000;border-color:#000}
.cp-btn--accent{background:var(--cp-accent);border-color:var(--cp-accent)}
.cp-btn--accent:hover{background:#d92020;border-color:#d92020}
.cp-btn--block{width:100%}
.cp-btn--sm{padding:var(--cp-2) var(--cp-3);font-size:var(--cp-fs-xs)}
.cp-btn--lg{padding:var(--cp-4) var(--cp-6);font-size:var(--cp-fs-md)}

/* --- Formularios ---------------------------------------------------------- */
.cp-field{margin-bottom:var(--cp-4)}
.cp-label,.cp-form label{display:block;font-size:var(--cp-fs-sm);font-weight:600;
  color:var(--cp-dark);margin-bottom:var(--cp-2)}
.cp-req{color:var(--cp-err)}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],
input[type=password],input[type=search],input[type=date],select,textarea{
  width:100%;padding:var(--cp-3);border:1px solid var(--cp-line);border-radius:var(--cp-radius);
  background:#fff;font-size:var(--cp-fs-base);color:var(--cp-dark);
  transition:border-color var(--cp-transition),box-shadow var(--cp-transition)}
input:focus,select:focus,textarea:focus{border-color:var(--cp-primary);
  box-shadow:0 0 0 3px rgba(51,185,191,.15);outline:none}
input[aria-invalid=true],.cp-field--error input,.cp-field--error textarea{border-color:var(--cp-err)}
textarea{min-height:130px;resize:vertical}
.cp-help{font-size:var(--cp-fs-xs);color:var(--cp-muted);margin-top:var(--cp-1)}
.cp-error{font-size:var(--cp-fs-xs);color:var(--cp-err);margin-top:var(--cp-1);display:block}
.cp-checkbox{display:flex;align-items:flex-start;gap:var(--cp-2);font-weight:400}
.cp-checkbox input{width:auto;margin-top:3px;flex:none}
.cp-hp{position:absolute!important;left:-9999px}   /* honeypot anti-spam */

/* --- Avisos --------------------------------------------------------------- */
.cp-notice{padding:var(--cp-3) var(--cp-4);border-left:3px solid var(--cp-primary);
  background:var(--cp-primary-tint);border-radius:var(--cp-radius);margin-bottom:var(--cp-4);
  font-size:var(--cp-fs-sm)}
.cp-notice--ok{border-color:var(--cp-ok);background:#eef8ef}
.cp-notice--warn{border-color:var(--cp-warn);background:#fdf6e3}
.cp-notice--err{border-color:var(--cp-err);background:#fdeeee}

/* A sangria de `.cp-content .cp-band` usa 100vw, que conta a barra de scroll
   vertical e transborda uns 15px. `clip` corta-os sem criar um contentor de
   scroll — ao contrario de `hidden`, que partiria o position:sticky do header
   e das barras laterais. */
body{overflow-x:clip}
