
/* ===== SÓ MOBILE/TABLET — ESCOPADO ÀS PÁGINAS COM HEADER ===== */

/* -------------------------
   Telefone até 575.98px
-------------------------- */
@media (max-width: 575.98px){
  /* Espaço lateral para respirar */
  body.layout-default .container,
  body.layout-default .container-fluid { padding-left: 1rem; padding-right: 1rem; }

  /* Navbar */
  body.layout-default .navbar-brand img { height: 34px; width: auto; }
  body.layout-default .navbar-nav .nav-link { padding: .55rem 0; }
  body.layout-default .lang-switch { padding-top: .25rem; }
  body.layout-default .lang-switch .btn-lang { padding: .5rem .7rem; }
  body.layout-default .lang-switch .btn-lang span { display: inline; }

  /* Hero – controla só .hero-title */
  body.layout-default .hero,
  body.layout-default .hero-section { padding: 1.25rem 0; }
  body.layout-default .hero .hero-title,
  body.layout-default .hero-section .hero-title{
    font-size: 1.6rem; 
    line-height: 1.25; 
    text-align: center; 
  }
  body.layout-default .hero p,
  body.layout-default .hero-section p { font-size: 1rem; text-align: center; }
  body.layout-default .hero .btn,
  body.layout-default .hero-section .btn { width: 100%; max-width: 320px; margin-inline: auto; }

  /* Grids empilhados */
  body.layout-default .servicos .row > [class*="col"],
  body.layout-default .cards .row > [class*="col"],
  body.layout-default .testemunhos .row > [class*="col"] { width: 100%; }
  body.layout-default .card { margin-bottom: 1rem; }
  body.layout-default .testemunhos .avatar { width: 64px; height: 64px; border-radius: 50%; }

  /* About/Founder – centraliza fotografia no telemóvel */
  body.layout-default .about-founder img { 
    max-width: 160px; 
    border-radius: 12px; 
    display: block; 
    margin: 0 auto; 
    float: none;
  }
  body.layout-default .about-founder h3 { font-size: 1.1rem; text-align: center; }
  body.layout-default .about-founder p { font-size: .98rem; }

  /* Tabelas */
  body.layout-default .table-responsive { overflow-x: auto; }
  body.layout-default table { font-size: .95rem; }

  /* Footer */
  body.layout-default .site-footer { text-align: center; }
  body.layout-default .site-footer .social a { margin: 0 .35rem; }

  /* WhatsApp floating */
  body.layout-default .whatsapp-float{ bottom: 50px !important; right: 18px !important; }
}

/* -------------------------
   Tablet 576–767.98px
-------------------------- */
@media (min-width: 576px) and (max-width: 767.98px){
  body.layout-default .hero .hero-title,
  body.layout-default .hero-section .hero-title { font-size: 1.9rem; }
  body.layout-default .hero p,
  body.layout-default .hero-section p { font-size: 1.05rem; }
  body.layout-default .card { margin-bottom: 1rem; }
}

/* -------------------------
   Tablet 768–991.98px
-------------------------- */
@media (min-width: 768px) and (max-width: 991.98px){
  body.layout-default .hero .hero-title,
  body.layout-default .hero-section .hero-title { font-size: 2.1rem; }
  body.layout-default .hero p,
  body.layout-default .hero-section p { font-size: 1.1rem; }

  /* 2 colunas */
  body.layout-default .servicos .row > [class*="col"],
  body.layout-default .cards .row > [class*="col"],
  body.layout-default .testemunhos .row > [class*="col"] { width: 50%; }

  /* Estimador centralizado */
  body.layout-default .estimate-section { max-width: 720px; margin-inline: auto; }
}

/* -------------------------
   Proteções gerais mobile (<=991.98px)
-------------------------- */
@media (max-width: 991.98px){
  body.layout-default img,
  body.layout-default video,
  body.layout-default svg { max-width: 100%; height: auto; }
  body.layout-default { overflow-x: hidden; } /* evita scroll lateral */

  /* logotipo */
  body.layout-default .navbar-brand img{ height:34px }
  body.layout-default .navbar-nav .nav-link{ padding:.55rem 0 }
}

/* -------------------------
   Utilitários adicionais
-------------------------- */
@media (max-width:768px){
  body.layout-default .brand-logo{ max-height:35px; }
  body.layout-default .bilingual-content{ flex-direction:column; }
  body.layout-default .right{ text-align:left; }
}
@media (min-width:576px){ body.layout-default .brand-logo{ max-height:38px; } }
@media (min-width:768px){ body.layout-default .brand-logo{ max-height:40px; } }
@media (min-width:992px){ body.layout-default .portfolio-grid{ gap:36px; max-width:1260px; } }

/* iPhone XR/12/SE e similares (extra seguro para títulos) */
@media (max-width: 430px){
  body.layout-default .hero .hero-title,
  body.layout-default .hero-section .hero-title{
    font-size: 1.45rem;
    line-height: 1.18;
    letter-spacing: .2px;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    white-space: normal !important;
  }
}

/* =========================================================
   AJUSTES UNIVERSAIS SÓ PARA MOBILE (<=575.98px)
========================================================= */
@media (max-width: 575.98px){

  /* Limita largura dos blocos de formulários (opcional) */
  body.layout-default form, 
  body.layout-default .estimate-section, 
  body.layout-default .orcamento-section { 
    max-width: 420px; 
    margin-inline: auto; 
  }

  /* Grelha mais apertada (se usares .row.g-3) */
  body.layout-default .row.g-3{
    --bs-gutter-x: .75rem;
    --bs-gutter-y: .75rem;
  }

  /* Colunas a 100% */
  body.layout-default .col-md-6{
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* Labels menores */
  body.layout-default .form-label{
    font-size: .9rem;
    margin-bottom: .35rem;
  }

  /* Campos compactos, mas legíveis */
  body.layout-default .form-select,
  body.layout-default .form-control{
    font-size: 16px !important;     /* crítico p/ iOS (≥16px) */
    line-height: 1.25;
    min-height: 40px !important;
    padding: .4rem .6rem !important;
    border-radius: .5rem;
    box-sizing: border-box;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-clip: padding-box;
  }

  /* Opções um toque menores */
  body.layout-default .form-select option{
    font-size: 10px;
    line-height: 1.2;
  }

  /* Botões proporcionais e fáceis de clicar */
  body.layout-default .btn{
    font-size: .95rem;
    padding: .5rem .5rem;
    border-radius: .55rem;
    width: 90%;
  }
}

/* === Custom Select só no mobile (<=575.98px) === */
@media (max-width:575.98px){
  /* Esconde o select nativo mas mantém no fluxo p/ submissão */
  body.layout-default .c4y-select-wrapper select.form-select{
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0; height: 0;
  }

  body.layout-default .c4y-select{
    display: flex; align-items: center; justify-content: space-between;
    width: 100%;
    min-height: 40px;
    padding: .4rem .6rem;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: .5rem;
    background: #fff;
    font-size: 14px;
    line-height: 1.25;
  }
  body.layout-default .c4y-select:focus{ outline: 2px solid #86b7fe; outline-offset: 2px; }

  body.layout-default .c4y-select__label{
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    margin-right: .5rem;
  }
  body.layout-default .c4y-select__chev{
    flex: 0 0 auto;
    width: 10px; height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .7;
  }

  body.layout-default .c4y-menu{
    position: absolute;
    left: 0; right: 0;
    z-index: 1000;
    margin-top: .35rem;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: .5rem;
    background: #fff;
    max-height: 260px;
    overflow: auto;
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
    display: none;
  }
  body.layout-default .c4y-menu.is-open{ display: block; }

  body.layout-default .c4y-option{
    padding: .5rem .6rem;
    font-size: 14px;
    line-height: 1.25;
    cursor: pointer;
  }
  body.layout-default .c4y-option.is-selected{ background: #f1f3f5; }
  body.layout-default .c4y-option:hover{ background: #f8f9fa; }
}

/* Desktop/tablet mantém o select normal */
@media (min-width:576px){
  body.layout-default .c4y-select-wrapper .c4y-select,
  body.layout-default .c4y-select-wrapper .c4y-menu{ display: none !important; }
}

/* Só afeta o Pedir Orçamento */
@media (max-width:575.98px){
  body.layout-default .orcamento-form .form-select,
  body.layout-default .orcamento-form .form-control{
    font-size: 16px !important;
    line-height: 1.25;
    min-height: 40px !important;
    padding: .4rem .6rem !important;
    border-radius: .5rem;
    box-sizing: border-box;
  }
  body.layout-default .orcamento-form .form-select option{ font-size: 15px; }

  body.layout-default .orcamento-form .col-md-6{
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Apenas página contactos */
@media (max-width: 575.98px){
  body.layout-default #formContato .form-control,
  body.layout-default #formContato .form-select{
    font-size: 16px;
    line-height: 1.5;
    min-height: 48px;
    padding: .65rem .9rem;
    border-radius: .6rem;
  }
  body.layout-default #formContato textarea.form-control{
    min-width: 300px;
  }
  body.layout-default #formContato .btn{
    padding: .7rem 1rem;
    border-radius: .7rem;
  }
}

@media (max-width: 768px) {
  body.layout-default #contact-form button[type="submit"] {
    display: block;
    margin-left: auto;
    margin-right: 15px;
    width: auto;
  }
}

/* Mobile: deixar o select "fechado" mais compacto */
@media (max-width: 576px){
  body.layout-default :is(select, .form-select){
    font-size: 16px !important;
    line-height: 1.25 !important;
    padding: .35rem .7rem !important;
    min-height: 2.25rem;
  }
  body.layout-default label + :is(select, .form-select){ margin-top: .2rem; }
}

/* Ajuste para ecrãs pequenos Foto Founder(mobile) */
@media (max-width: 480px) {
  body.layout-default .founder-avatar { max-width: 160px; }
}

/* ===== Mensagem do Founder ===== */
body.layout-default .lead{
  text-align:center;
  margin: 0 auto;
  max-width: 800px;
  line-height: 1.6;
}

/* Mensagem do fundador – justificado no mobile */
@media (max-width: 768px) {
  body.layout-default .lead p{
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    letter-spacing: normal;
    word-spacing: normal;
    line-height: 1.6;
  }
}

/* iPad Pro / largura intermediária */
@media (min-width: 992px) and (max-width: 1199.98px) {
  body.layout-default .navbar .navbar-collapse { flex: 1 1 auto; }
  body.layout-default .navbar .navbar-brand    { flex: 0 0 auto; }
  body.layout-default .navbar .navbar-nav      { flex-wrap: wrap; }
  body.layout-default .navbar .nav-link        { padding: .25rem .5rem; font-size: .95rem; }
  body.layout-default .navbar .btn,
  body.layout-default .navbar .badge,
  body.layout-default .navbar .lang-switch { flex-shrink: 0; }
}

/* Fazer o botão Inspiration quebrar linha só no iPad Pro */
@media (min-width: 1024px) and (max-width: 1199.98px) {
  body.layout-default .navbar-nav { flex-wrap: wrap; }
  body.layout-default .nav-inspiration {
    flex-basis: 100%;
    text-align: center;
    margin-top: 5px;
  }
  body.layout-default .navbar .nav-link {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    font-size: 0.9rem;
  }
}

/* Garantir que não cai para 2 linhas */
@media (min-width: 1024px) and (max-width: 1199.98px) {
  body.layout-default .navbar-nav { flex-wrap: nowrap !important; }
}




    /* ===== CSS específico TERMOS (.c4y-terms) com a paleta =====
       Fundo: #f8f9fa | Texto: #212529 | Destaque: #0d6efd (hover #0a58ca)
       Bordas: #dee2e6 | Título: #1a1a1a | Muted/Resumo: #495057
    ---------------------------------------------------------------- */
    .c4y-terms{
      --bg:#f8f9fa; --ink:#212529; --muted:#495057; --line:#dee2e6;
      --brand:#0d6efd; --brand-hover:#0a58ca; --title:#1a1a1a; --card:#ffffff;
    }
    .c4y-terms *{box-sizing:border-box}
    .c4y-terms .wrap{max-width:1100px;margin:0 auto;padding:20px;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial}
    .c4y-terms .topbar{
      position:sticky; top:0; z-index:10; margin:-20px -20px 16px; padding:10px 16px;
      background:rgba(121, 163, 204, 0.9); backdrop-filter:saturate(1.2) blur(6px);
      border-bottom:1px solid var(--line); display:flex; gap:10px; align-items:center; justify-content:space-between;
    }
    .c4y-terms .btn{
      appearance:none; border:1px solid var(--line); background:#fff; color:var(--ink);
      padding:8px 12px; border-radius:10px; cursor:pointer; font-size:14px; transition:.15s;
    }
    .c4y-terms .btn:hover{border-color:var(--brand); color:#fff; background:var(--brand)}
    .c4y-terms .btn.brand{border-color:var(--brand); color:#fff; background:var(--brand)}
    .c4y-terms .btn.brand:hover{background:var(--brand-hover)}
    .c4y-terms .title{ text-align:center;font-weight:800;font-size:1.9rem;line-height:1.25;margin:12px 0 4px;color:var(--title)}
    .c4y-terms .muted{color:var(--muted);font-size:.975rem}
    .c4y-terms .card{border:1px solid var(--line); border-radius:14px; background:var(--card); padding:16px; margin-top:14px}
    .c4y-terms .note{background:#fbfbfd; border:1px solid var(--line); border-radius:10px; padding:10px; color:var(--muted)}
    .c4y-terms a{color:var(--brand); text-decoration:none}
    .c4y-terms a:hover{color:var(--brand-hover); text-decoration:underline}
    .c4y-terms h2{font-size:1.15rem;margin:.4rem 0}
    .c4y-terms details{border-top:1px dashed var(--line); padding-top:12px}
    .c4y-terms details:first-of-type{border-top:0; padding-top:0}
    .c4y-terms summary{cursor:pointer; font-weight:700}
    .c4y-terms ul,.c4y-terms ol{margin:.5rem 0 .5rem 1.2rem}
    .hidden{display:none!important}

    /* CSS do botao voltar */
    .return-btn-container{text-align:center;margin:40px 0 20px}
.return-btn{
  display:inline-block;padding:12px 28px;border-radius:10px;
  background:rgba(121, 163, 204, 0.9);color: #fff;
  text-decoration:none;font-weight:600;box-shadow:0 4px 10px rgba(170, 32, 32, 0.1);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.return-btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.15);filter:brightness(1.02)}
    @media (min-width:960px){ .c4y-terms .grid{display:grid; grid-template-columns:1fr 1fr; gap:16px} .c4y-terms .title{font-size:2rem} }
 


/* =========================================================
   MANUTENÇÃO — 
   ========================================================= */
.scoped {
  --c1:#0d6efd; --c2:#6610f2;
  display:flex; align-items:center; justify-content:center;
  min-height:100vh; margin:0;
  background: linear-gradient(135deg, var(--c1), var(--c2));
  color:#fff; text-align:center;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

.scoped .card {
  background: rgba(255,255,255,0.12); backdrop-filter: blur(10px);
  border:0; border-radius:1rem; padding:2rem; max-width:520px;
  box-shadow:0 8px 24px rgba(0,0,0,.3);
}

.scoped .logo { max-width:120px; margin-bottom:1rem; }

.scoped .lang-switch {
  position: fixed; top:14px; right:14px;
  background: rgba(0,0,0,.35); color:#fff; border-radius:999px;
  padding:.35rem .75rem; font-size:.9rem; text-decoration:none;
}
.scoped .lang-switch:hover { background: rgba(0,0,0,.5); }

.scoped .footer { font-size:.85rem; margin-top:1.5rem; opacity:.8; }

.scoped .whatsapp-float {
  position: fixed; right:20px; bottom:20px;
  background:#25D366; color:#fff; border-radius:50%;
  width:55px; height:55px; display:flex; align-items:center; justify-content:center;
  font-size:28px; box-shadow:0 4px 12px rgba(0,0,0,.3);
  text-decoration:none; transition: transform .2s;
}
.scoped .whatsapp-float:hover { transform: scale(1.05); }

.scoped .back-link { display:inline-block; margin-top:1rem; color:#fff; opacity:.85; }
.scoped .back-link:hover { opacity:1; }

@media (max-width: 480px) {
  .scoped .card { padding:1.5rem; }
}



/* =========================================================
   a11y — 
   ========================================================= */

.c4y-a11y-btn{
  position: fixed; right: .6rem; top: 50%; transform: translateY(-50%);
  width: 42px; height: 42px; border: none; border-radius: 999px;
  display: grid; place-items: center; background: #0a9396; color: #fff;
  box-shadow: 0 8px 18px rgba(0,0,0,.25); opacity: .55; cursor: pointer;
  z-index: 2147483000; transition: opacity .2s, transform .2s, box-shadow .2s;
}
.c4y-a11y-btn:hover,.c4y-a11y-btn:focus-visible{ opacity:1; transform: translateY(-1px); box-shadow:0 12px 24px rgba(0,0,0,.28); }
.c4y-a11y-btn svg{ width:20px; height:20px; fill: currentColor; }

/* Painel (dialog) */
.c4y-a11y-panel{
  position: fixed; right: 3.6rem; top: 50%; transform: translateY(-50%);
  width: min(92vw, 420px); max-height: min(78vh, 680px); overflow:auto;
  background:#0f1115; color:#e7ecf3; border-radius:1rem; padding:1rem;
  box-shadow:0 22px 60px rgba(0,0,0,.4); z-index: 2147483001;
  font-size:.9rem; line-height:1.4;
}
.c4y-a11y-head{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.5rem; }
.c4y-a11y-head h2{ margin:0; font-size:1rem; letter-spacing:.2px; }
.c4y-a11y-close{ background:transparent; border:none; color:#e7ecf3; font-size:1.4rem; line-height:1; cursor:pointer; padding:.25rem .5rem; border-radius:.5rem; }
.c4y-a11y-close:hover, .c4y-a11y-close:focus-visible{ background:rgba(255,255,255,.06); }

.c4y-a11y-group{ border:1px solid rgba(255,255,255,.08); border-radius:.8rem; padding:.6rem; margin-bottom:.6rem; }
.c4y-a11y-row{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap; margin:.3rem 0; }
.c4y-a11y-label{ font-weight:600; font-size:.92rem; }
.c4y-a11y-actions{ display:flex; align-items:center; gap:.5rem; }
.c4y-a11y-btn-sm{ background:#1a1f26; color:#fff; border:1px solid rgba(255,255,255,.12); padding:.25rem .45rem; border-radius:.45rem; cursor:pointer; }
.c4y-a11y-btn-sm:hover, .c4y-a11y-btn-sm:focus-visible{ background:#232a33; }
.c4y-a11y-value{ min-width:3.5ch; text-align:center; }
.c4y-a11y-switch{ display:flex; align-items:center; gap:.45rem; }
.c4y-a11y-switch input{ accent-color:#0a9396; width:18px; height:18px; }
.c4y-a11y-foot{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap; margin-top:.4rem; }
.c4y-a11y-reset{ background:transparent; color:#fff; border:1px dashed rgba(255,255,255,.35); padding:.3rem .5rem; border-radius:.45rem; cursor:pointer; }
.c4y-a11y-reset:hover, .c4y-a11y-reset:focus-visible{ background:rgba(255,255,255,.06); }
.c4y-a11y-hint{ color:#a7b0be; font-size:.85rem; }

/* Efeitos globais aplicados no <html> */
html.c4y-a11y{ font-size: calc(100% * var(--c4y-font, 1)); }
html.c4y-a11y body{ line-height: var(--c4y-line, 1.5); }
html.c4y-a11y.c4y-underline a{ text-decoration: underline !important; text-underline-offset:2px; }
html.c4y-a11y.c4y-focus *:focus-visible{ outline: 3px dashed #0a9396 !important; outline-offset: 2px; }
html.c4y-a11y.c4y-contrast body{ background:#000 !important; color:#fff !important; }
html.c4y-a11y.c4y-contrast a{ color:#00ffff !important; text-decoration: underline !important; }
html.c4y-a11y.c4y-gray{ filter: grayscale(1); }

/* Mobile: painel em baixo para não tapar conteúdo */
@media (max-width:576px){
  .c4y-a11y-btn{ right:.5rem; top:45%; width:38px; height:38px; }
  .c4y-a11y-panel{
    left:.5rem; right:.5rem; top:auto; transform:none; bottom:2.5rem;
    width:auto; max-height:70vh; font-size:.88rem; padding:.75rem;
  }
}
@media (prefers-reduced-motion: reduce){
  .c4y-a11y-btn, .c4y-a11y-panel{ transition: none; }
}


/* Ajuste exclusivo para Safari/iOS */
@supports (-webkit-touch-callout: none) {
  #c4y-a11y-btn svg {
    width: 40px;   /* aumenta o tamanho do ícone */
    height: 40px;
    display: block;
    flex-shrink: 0;
  }
}



