/* TORE Consulting — Contactos
   Page-specific styles shared by Contacto, Pedido de Proposta and Exercício de Direitos RGPD.
   Global design tokens and shared components remain in ../styles.css.
*/

/* ===== contacto.html ===== */
.contact-page{background:var(--off);min-height:100vh}
    .contact-hero{
      position:relative;
      overflow:hidden;
      min-height:390px;
      display:flex;
      align-items:flex-end;
      background:var(--black);
      color:var(--white);
    }
    .contact-axis{
      width:calc(100% - 2 * var(--pad));
      margin-left:var(--pad);
      margin-right:var(--pad);
    }
    .contact-hero-inner{position:relative;padding:72px 0 68px}
    .contact-kicker{
      margin-bottom:30px;
      font:700 10px/1 "Montserrat",sans-serif;
      letter-spacing:.18em;
      color:var(--yellow);
    }
    .contact-hero h1{
      margin:0;
      max-width:900px;
      font:400 clamp(60px,7.5vw,110px)/.88 "Fugaz One",sans-serif;
      letter-spacing:-.05em;
    }
    .contact-hero h1 span{color:#777}
    .contact-mark{
      position:absolute;
      right:0;
      bottom:30px;
      font:400 clamp(120px,18vw,270px)/.8 "Fugaz One",sans-serif;
      color:rgba(255,229,36,.10);
      pointer-events:none;
      letter-spacing:-.08em;
    }

    .contact-main{padding:86px 0 120px}
    .contact-grid{
      display:grid;
      grid-template-columns:minmax(0,.82fr) minmax(480px,1fr);
      gap:8vw;
      align-items:start;
    }
    .contact-intro h2{
      margin:0 0 28px;
      font:400 clamp(42px,5vw,70px)/.94 "Fugaz One",sans-serif;
      letter-spacing:-.04em;
    }
    .contact-intro h2 span{color:#777}
    .contact-intro>p{
      max-width:540px;
      margin:0 0 48px;
      font:400 19px/1.7 "Montserrat",sans-serif;
      color:#555;
    }
    .contact-details{
      border-top:1px solid #d7d7d3;
      max-width:540px;
    }
    .contact-detail{
      display:grid;
      grid-template-columns:125px 1fr;
      gap:25px;
      padding:21px 0;
      border-bottom:1px solid #d7d7d3;
    }
    .contact-detail small{
      font:700 10px/1.2 "Montserrat",sans-serif;
      letter-spacing:.12em;
    }
    .contact-detail a,.contact-detail span{
      font:500 14px/1.5 "Montserrat",sans-serif;
      color:var(--black);
      text-decoration:none;
    }
    .contact-detail a:hover{text-decoration:underline}

    .contact-form{
      background:var(--white);
      padding:40px;
      border:1px solid #deded9;
      border-top:3px solid var(--yellow);
      border-radius:20px;
      box-shadow:0 14px 35px rgba(17,17,17,.06);
    }
    .contact-form-title{
      margin-bottom:30px;
      font:600 26px/1.2 "Montserrat",sans-serif;
    }
    .contact-fields{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:22px;
    }
    .contact-field{display:flex;flex-direction:column;gap:8px}
    .contact-field.full{grid-column:1/-1}
    .contact-field label{
      font:700 10px/1.2 "Montserrat",sans-serif;
      letter-spacing:.13em;
      text-transform:uppercase;
    }
    .contact-field input,.contact-field select,.contact-field textarea{
      width:100%;
      box-sizing:border-box;
      border:1px solid #d7d7d3;
      border-radius:10px;
      background:#fff;
      outline:0;
      padding:15px;
      font:400 14px/1.5 "Montserrat",sans-serif;
      color:var(--black);
    }
    .contact-field textarea{min-height:175px;resize:vertical;border-radius:12px}
    .contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--black)}
    .contact-submit{
      width:100%;
      min-height:54px;
      margin-top:25px;
      border:0;
      border-radius:11px;
      background:var(--black);
      color:#fff;
      cursor:pointer;
      font:600 14px/1 "Montserrat",sans-serif;
      transition:transform .18s ease,background .18s ease;
    }
    .contact-submit:hover{transform:translateY(-1px);background:#222}
    .contact-note{
      margin:14px 0 0;
      font:400 11px/1.6 "Montserrat",sans-serif;
      color:#888;
    }

    @media(max-width:900px){
      .contact-grid{grid-template-columns:1fr;gap:55px}
      .contact-form{padding:30px}
    }
    @media(max-width:600px){
      .contact-hero{min-height:310px}
      .contact-hero-inner{padding:54px 0 48px}
      .contact-kicker{font-size:9px;margin-bottom:22px}
      .contact-hero h1{font-size:52px}
      .contact-mark{font-size:110px;right:-8px;bottom:22px}
      .contact-main{padding:65px 0 80px}
      .contact-intro>p{font-size:17px}
      .contact-fields{grid-template-columns:1fr}
      .contact-field.full{grid-column:auto}
      .contact-form{padding:25px}
      .contact-detail{grid-template-columns:105px 1fr}
    }

/* ===== exercicio-direitos-rgpd.html ===== */
.rights-page{background:var(--off);min-height:100vh}
    .rights-hero{background:var(--black);color:#fff;min-height:360px;display:flex;align-items:flex-end;position:relative;overflow:hidden}
    .rights-axis{width:calc(100% - 2 * var(--pad));margin:0 var(--pad);position:relative}
    .rights-hero-inner{padding:68px 0 64px}
    .rights-kicker{margin-bottom:28px;font:700 10px/1 Montserrat,sans-serif;letter-spacing:.18em;color:var(--yellow)}
    .rights-hero h1{margin:0;max-width:900px;font:400 clamp(54px,7vw,100px)/.9 'Fugaz One',sans-serif;letter-spacing:-.05em}
    .rights-hero h1 span{color:#777}
    .rights-mark{position:absolute;right:0;bottom:28px;font:400 clamp(120px,18vw,260px)/.8 'Fugaz One',sans-serif;color:rgba(255,229,36,.1);letter-spacing:-.08em;pointer-events:none}
    .rights-main{padding:78px 0 120px}
    .rights-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(460px,1fr);gap:8vw;align-items:start}
    .rights-intro h2{margin:0 0 24px;font:400 clamp(40px,5vw,68px)/.95 'Fugaz One',sans-serif;letter-spacing:-.04em}
    .rights-intro h2 span{color:#777}
    .rights-intro p{max-width:540px;margin:0 0 32px;font:400 16px/1.75 Montserrat,sans-serif;color:#555}
    .rights-list{border-top:1px solid #d7d7d3;max-width:560px}
    .rights-list div{padding:17px 0;border-bottom:1px solid #d7d7d3;display:grid;grid-template-columns:120px 1fr;gap:22px}
    .rights-list strong{font:700 10px/1.3 Montserrat,sans-serif;letter-spacing:.12em}
    .rights-list span{font:400 13px/1.55 Montserrat,sans-serif;color:#555}
    .rights-form{background:#fff;padding:38px;border:1px solid #deded9;border-top:3px solid var(--yellow);border-radius:20px;box-shadow:0 14px 35px rgba(17,17,17,.06)}
    .rights-form h3{margin:0 0 26px;font:600 26px/1.2 Montserrat,sans-serif}
    .rights-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
    .rights-field{display:flex;flex-direction:column;gap:8px}.rights-field.full{grid-column:1/-1}
    .rights-field label{font:700 10px/1.2 Montserrat,sans-serif;letter-spacing:.13em;text-transform:uppercase}
    .rights-field input,.rights-field select,.rights-field textarea{width:100%;box-sizing:border-box;border:1px solid #d7d7d3;border-radius:10px;background:#fff;outline:0;padding:14px;font:400 14px/1.5 Montserrat,sans-serif;color:var(--black)}
    .rights-field textarea{min-height:150px;resize:vertical}.rights-field input:focus,.rights-field select:focus,.rights-field textarea:focus{border-color:var(--black)}
    .rights-consent{display:flex;gap:10px;align-items:flex-start;margin-top:22px;font:400 11px/1.55 Montserrat,sans-serif;color:#666}.rights-consent input{margin-top:2px;accent-color:#111}.rights-consent a{color:#111}
    .rights-submit{width:100%;min-height:54px;margin-top:22px;border:0;border-radius:11px;background:var(--black);color:#fff;cursor:pointer;font:600 14px/1 Montserrat,sans-serif}.rights-submit:hover{background:#222}
    .rights-note{margin:13px 0 0;font:400 11px/1.6 Montserrat,sans-serif;color:#888}
    @media(max-width:900px){.rights-grid{grid-template-columns:1fr;gap:48px}.rights-form{padding:30px}}
    @media(max-width:600px){.rights-hero{min-height:300px}.rights-hero-inner{padding:52px 0 46px}.rights-hero h1{font-size:50px}.rights-mark{font-size:105px;right:-8px}.rights-main{padding:60px 0 80px}.rights-fields{grid-template-columns:1fr}.rights-field.full{grid-column:auto}.rights-form{padding:25px}.rights-list div{grid-template-columns:100px 1fr}}

/* ===== proposta.html ===== */
.proposal-hero-banner{
      position:relative;
      overflow:hidden;
      background:var(--black);
      color:var(--white);
      min-height:390px;
      display:flex;
      align-items:flex-end;
    }
    .proposal-banner-axis{
      position:relative;
      width:calc(100% - 2 * var(--pad));
      max-width:none;
      margin-left:var(--pad);
      margin-right:var(--pad);
      padding:72px 0 68px;
    }
    .proposal-banner-kicker{
      margin-bottom:30px;
      font:700 9px/1 "Montserrat",sans-serif;
      letter-spacing:.18em;
      color:var(--yellow);
    }
    .proposal-hero-banner h1{
      margin:0;
      max-width:900px;
      font:400 clamp(56px,7vw,104px)/.88 "Fugaz One",sans-serif;
      letter-spacing:-.05em;
    }
    .proposal-hero-banner h1 span{color:#777}
    .proposal-banner-mark{
      position:absolute;
      right:0;
      bottom:35px;
      font:400 clamp(120px,18vw,270px)/.8 "Fugaz One",sans-serif;
      color:rgba(255,229,36,.10);
      letter-spacing:-.08em;
      pointer-events:none;
    }
    .proposal-page{background:var(--off);min-height:100vh}
    .proposal-main{padding:72px 0 120px}
    .proposal-axis{
      width:calc(100% - 2 * var(--pad));
      max-width:none;
      margin-left:var(--pad);
      margin-right:var(--pad);
    }
    .proposal-kicker{font:600 11px/1 "Montserrat",sans-serif;letter-spacing:.13em;color:#777;margin-bottom:38px}
    .proposal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:10vw;align-items:start}
    .proposal-grid h1{margin:0;font:400 clamp(58px,7vw,104px)/.88 "Fugaz One",sans-serif;letter-spacing:-.05em}
    .proposal-grid h1 span{color:#777}
    .proposal-copy{padding-top:12px}
    .proposal-copy>p{max-width:520px;margin:0 0 30px;font:400 15px/1.8 "Montserrat",sans-serif;color:#666}
    .proposal-choice-view,
    .proposal-form{
      transition:opacity .28s ease,transform .28s ease;
    }
    .proposal-stage.is-form .proposal-choice-view{
      display:none;
    }
    .proposal-form[hidden]{display:none}
    .proposal-form.is-visible{
      display:block;
      animation:proposalReveal .35s ease both;
    }
    @keyframes proposalReveal{
      from{opacity:0;transform:translateY(14px)}
      to{opacity:1;transform:translateY(0)}
    }
    .proposal-form-top{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:30px;
      margin-bottom:34px;
    }
    .proposal-form-back{
      border:0;
      background:transparent;
      padding:0;
      color:#666;
      cursor:pointer;
      font:500 14px/1 "Montserrat",sans-serif;
    }
    .proposal-form-back:hover{color:#111}
    .proposal-form{background:var(--white);padding:36px;border-top:4px solid var(--yellow)}
    .proposal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
    .proposal-field{display:flex;flex-direction:column;gap:8px}
    .proposal-field.full{grid-column:1/-1}
    .proposal-field label{font:700 16px/1.2 "Montserrat",sans-serif;letter-spacing:.13em;text-transform:uppercase}
    .proposal-field input,.proposal-field select,.proposal-field textarea{
      width:100%;box-sizing:border-box;border:1px solid #d7d7d3;background:#fff;outline:0;
      padding:14px;font:400 12px/1.4 "Montserrat",sans-serif;color:var(--black)
    }
    .proposal-field textarea{min-height:145px;resize:vertical}
    .proposal-field input:focus,.proposal-field select:focus,.proposal-field textarea:focus{border-color:var(--black)}

    .proposal-form{
      min-height:620px;
    }
    .proposal-form-grid{
      gap:24px;
    }
    .proposal-field input,.proposal-field textarea{
      min-height:54px;
      padding:16px;
      font-size:14px;
    }
    .proposal-field textarea{
      min-height:170px;
    }
    .proposal-upload-box{
      min-height:118px;
      padding:22px;
      box-sizing:border-box;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:7px;
      border:1px dashed #bdbdb8;
      border-radius:14px;
      background:#fafaf8;
      cursor:pointer;
      text-align:center;
      transition:border-color .18s ease,background .18s ease;
    }
    .proposal-upload-box:hover{
      border-color:#111;
      background:#fff;
    }
    .proposal-upload-box input{
      position:absolute;
      width:1px;
      height:1px;
      opacity:0;
      pointer-events:none;
    }
    .proposal-upload-icon{
      width:30px;
      height:30px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:50%;
      background:var(--yellow);
      color:#111;
      font:400 18px/1 "Montserrat",sans-serif;
    }
    .proposal-upload-box strong{
      font:600 13px/1.2 "Montserrat",sans-serif;
    }
    .proposal-upload-box small{
      font:400 10px/1.5 "Montserrat",sans-serif;
      color:#888;
    }
    .proposal-file-list{
      display:flex;
      flex-wrap:wrap;
      gap:7px;
      margin-top:9px;
    }
    .proposal-file{
      padding:7px 10px;
      border-radius:8px;
      background:#f0f0ed;
      font:500 9px/1.2 "Montserrat",sans-serif;
      color:#555;
    }
    .proposal-extra[hidden],.proposal-upload[hidden]{display:none}

    .proposal-submit{margin-top:26px;width:100%;min-height:54px;border:0;background:var(--black);color:#fff;cursor:pointer;font:600 16px/1 "Montserrat",sans-serif;letter-spacing:.04em}
    .proposal-note{margin:14px 0 0;font:400 13px/1.6 "Montserrat",sans-serif;color:#888}
    .proposal-back{display:inline-block;margin-top:36px;font:600 10px/1 "Montserrat",sans-serif;color:var(--black);text-decoration:none}
    .proposal-back:hover{text-decoration:underline}


    .proposal-process{margin-top:46px;border-top:1px solid #d7d7d3;max-width:560px}
    .proposal-process>div{display:grid;grid-template-columns:38px 1fr;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid #d7d7d3}
    .proposal-process b{font:600 11px/1 "Montserrat",sans-serif;color:#999;letter-spacing:.08em}
    .proposal-process span{font:600 11px/1.3 "Montserrat",sans-serif;color:var(--black)}

    @media(max-width:600px){
      .proposal-hero-banner{min-height:310px}
      .proposal-banner-axis{padding:54px 0 48px}
      .proposal-banner-kicker{font-size:8px;margin-bottom:22px}
      .proposal-hero-banner h1{font-size:50px}
      .proposal-banner-mark{font-size:110px;right:-8px;bottom:22px}
    }



    .proposal-grid{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(480px,.95fr);
      gap:7vw;
      align-items:start;
    }
    .proposal-start{padding-top:5px}
    .proposal-stage{
      width:min(980px,100%);
      margin:0 auto;
      min-height:540px;
      position:relative;
    }
    .proposal-choice-view{
      width:min(780px,100%);
      margin:0 auto;
      padding-top:10px;
    }
    .proposal-request-intro{margin-bottom:38px}
    .proposal-request-label{
      margin-bottom:16px;
      font:700 13px/1.25 "Montserrat",sans-serif;
      letter-spacing:.15em;
    }
    .proposal-request-intro p{
      max-width:650px;
      margin:0;
      font:400 22px/1.7 "Montserrat",sans-serif;
      color:#666;
    }
    .proposal-options{
      display:grid;
      gap:14px;
      margin-bottom:28px;
    }
    .proposal-option{
      position:relative;
      display:grid;
      grid-template-columns:38px minmax(0,1fr) 20px;
      grid-template-rows:auto auto;
      align-items:center;
      column-gap:14px;
      width:100%;
      min-height:132px;
      padding:28px 32px;
      text-align:left;
      border:1px solid #d8d8d3;
      border-radius:18px;
      background:var(--white);
      color:var(--black);
      cursor:pointer;
      font-family:"Montserrat",sans-serif;
      transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
    }
    .proposal-option:hover{
      transform:translateY(-2px);
      border-color:#aaa;
      box-shadow:0 8px 24px rgba(17,17,17,.07);
    }
    .proposal-option.is-active{
      background:var(--yellow);
      border-color:var(--yellow);
      box-shadow:none;
      transform:none;
    }
    .proposal-option-number{
      grid-row:1/3;
      align-self:center;
      font:600 11px/1 "Montserrat",sans-serif;
      color:#888;
    }
    .proposal-option.is-active .proposal-option-number{color:#111}
    .proposal-option strong{
      font:600 20px/1.25 "Montserrat",sans-serif;
    }
    .proposal-option small{
      margin-top:4px;
      font:400 16px/1.55 "Montserrat",sans-serif;
      color:#777;
    }
    .proposal-option.is-active small{color:#333}
    .proposal-option b{
      grid-column:3;
      grid-row:1/3;
      justify-self:end;
      font:400 24px/1 "Montserrat",sans-serif;
      color:#999;
      transition:transform .18s ease,color .18s ease;
    }
    .proposal-option:hover b,.proposal-option.is-active b{
      color:var(--black);
      transform:translateX(3px);
    }
    .proposal-form{
      background:var(--white);
      padding:38px;
      border:1px solid #deded9;
      border-top:3px solid var(--yellow);
      border-radius:20px;
      box-shadow:0 14px 35px rgba(17,17,17,.06);
    }
    .proposal-field input,.proposal-field textarea{
      border:1px solid #d7d7d3;
      border-radius:10px;
    }
    .proposal-field textarea{border-radius:12px}
    .proposal-submit{
      border-radius:11px;
      transition:transform .18s ease,background .18s ease;
    }
    .proposal-submit:hover{
      transform:translateY(-1px);
      background:#222;
    }

    .proposal-request-intro{margin-bottom:30px}
    .proposal-request-label{
      margin-bottom:14px;
      font:700 13px/1.25 "Montserrat",sans-serif;
      letter-spacing:.15em;
    }
    .proposal-request-intro p{
      max-width:560px;
      margin:0;
      font:400 16px/1.7 "Montserrat",sans-serif;
      color:#666;
    }
    .proposal-form-title{
      display:flex;
      justify-content:space-between;
      align-items:end;
      gap:20px;
      margin-bottom:25px;
    }
    .proposal-form-title span{
      font:700 13px/1.25 "Montserrat",sans-serif;
      letter-spacing:.13em;
      color:#888;
    }
    .proposal-form-title strong{
      font:600 28px/1.2 "Montserrat",sans-serif;
    }
    .proposal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
    .proposal-field{display:flex;flex-direction:column;gap:8px}
    .proposal-field.full{grid-column:1/-1}
    .proposal-field label{font:700 13px/1.25 "Montserrat",sans-serif;letter-spacing:.13em;text-transform:uppercase}
    .proposal-field input,.proposal-field textarea{
      width:100%;box-sizing:border-box;border:1px solid #d7d7d3;background:#fff;outline:0;
      padding:15px;font:400 16px/1.5 "Montserrat",sans-serif;color:var(--black)
    }
    .proposal-field textarea{min-height:145px;resize:vertical}
    .proposal-field input:focus,.proposal-field textarea:focus{border-color:var(--black)}
    .proposal-submit{margin-top:24px;width:100%;min-height:52px;border:0;background:var(--black);color:#fff;cursor:pointer;font:600 16px/1 "Montserrat",sans-serif;letter-spacing:.04em}
    .proposal-note{margin:13px 0 0;font:400 13px/1.6 "Montserrat",sans-serif;color:#888}

    @media(max-width:900px){
      .proposal-grid{grid-template-columns:1fr;gap:50px}
      .proposal-grid{grid-template-columns:1fr;gap:38px}
    }

    .proposal-process{margin-top:46px;border-top:1px solid #d7d7d3;max-width:560px}
    .proposal-process>div{display:grid;grid-template-columns:38px 1fr;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid #d7d7d3}
    .proposal-process b{font:600 11px/1 "Montserrat",sans-serif;color:#999;letter-spacing:.08em}
    .proposal-process span{font:600 11px/1.3 "Montserrat",sans-serif;color:var(--black)}

    @media(max-width:600px){
      .proposal-main{padding:62px 0 80px}
      .proposal-grid h1{font-size:55px}
      .proposal-form{padding:28px;min-height:0}
      .proposal-form-grid{grid-template-columns:1fr}
      .proposal-field.full{grid-column:auto}
      .proposal-form-title{display:block}
      .proposal-form-title strong{display:block;margin-top:10px}
      .proposal-option{grid-template-columns:32px 1fr 20px;gap:10px;padding:16px 17px}
      .proposal-option small{grid-column:2}
      .proposal-option b{grid-column:3;grid-row:1/3}
    }


/* Formulários de contacto — indicação consistente dos campos obrigatórios. */
.required-mark{
  display:inline;
  color:#b42318;
  font:700 1em/1 Montserrat,sans-serif;
  letter-spacing:0;
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.required-legend{
  margin:-18px 0 24px;
  font:400 12px/1.6 Montserrat,sans-serif;
  color:#666;
}
.required-note{
  display:inline;
  font:500 11px/1.5 Montserrat,sans-serif;
  letter-spacing:0;
  text-transform:none;
  color:#555;
}
.rights-form .required-legend{margin:-14px 0 22px}
.proposal-form .required-legend{margin:0 0 24px}
