:root{
    --bg:#F4F1EE;
    --panel:#FFFFFF;
    --ink:#241417;
    --ink-soft:#6B5C5F;
    --line:#E3D9DB;
    --line-strong:#C7AEB4;
    --accent:#92072D;
    --accent-soft:#F5E4E8;
    --accent-ink:#FFFFFF;
    --danger:#A13C2C;
    --danger-soft:#F7E7E2;
    --radius:10px;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:640px;margin:0 auto;padding:20px 18px 30px;}

  .top-logo{text-align:center;margin-bottom:10px;}
  .top-logo img{height:110px;width:auto;}

  .header{margin-bottom:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
  .header-text{flex:1;}
  .eyebrow{
    font-size:12.5px;font-weight:600;letter-spacing:0.6px;text-transform:uppercase;
    color:var(--accent);margin-bottom:8px;
  }
  h1{
    font-family:'Fraunces',serif;font-weight:600;font-size:30px;
    margin:0 0 8px;line-height:1.15;
  }
  .lead{color:var(--ink-soft);font-size:15px;line-height:1.6;max-width:52ch;}

  .card{
    background:var(--panel);border:1px solid var(--line);border-radius:14px;
    padding:28px 26px 26px;
  }

  .section-title{
    font-family:'Fraunces',serif;font-size:17px;font-weight:600;
    margin:0 0 4px;display:flex;align-items:center;gap:8px;
  }
  .section-num{
    width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
    font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;
    font-family:'Inter',sans-serif;flex-shrink:0;
  }
  .section-hint{color:var(--ink-soft);font-size:13px;margin:0 0 16px 30px;}

  .divider{border:none;border-top:1px solid var(--line);margin:24px 0;}

  .field{margin-bottom:15px;}
  .field label{
    display:block;font-size:13px;font-weight:500;color:var(--ink);margin-bottom:6px;
  }
  .field label .opt{color:var(--ink-soft);font-weight:400;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

  input, select{
    width:100%;font-family:'Inter',sans-serif;font-size:14.5px;
    padding:10px 12px;border-radius:8px;border:1px solid var(--line-strong);
    background:var(--bg);color:var(--ink);
  }
  input:focus, select:focus{outline:2px solid var(--accent);outline-offset:1px;}
  input.invalid{border-color:var(--danger);background:var(--danger-soft);}

  .err{color:var(--danger);font-size:12.5px;margin-top:5px;display:none;}
  .err.show{display:block;}

  .help{color:var(--ink-soft);font-size:12px;margin-top:5px;}

  .btn-submit{
    width:100%;margin-top:10px;
    font-family:'Inter',sans-serif;font-weight:600;font-size:15px;
    background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;
    padding:14px 18px;cursor:pointer;transition:background .12s ease, transform .08s ease;
  }
  .btn-submit:hover{background:#255449;}
  .btn-submit:active{transform:scale(0.99);}

  .privacy{font-size:12px;color:var(--ink-soft);text-align:center;margin-top:14px;line-height:1.6;}

  /* success screen */
  .success{
    background:var(--panel);border:1px solid var(--line);border-radius:14px;
    padding:44px 30px;text-align:center;
  }
  .success-mark{
    width:56px;height:56px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
    display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:26px;
  }
  .success h2{font-family:'Fraunces',serif;font-size:22px;margin:0 0 8px;}
  .success p{color:var(--ink-soft);font-size:14.5px;line-height:1.6;max-width:40ch;margin:0 auto;}
  .ref{
    font-family:'Inter',sans-serif;font-weight:600;background:var(--accent-soft);color:var(--accent);
    display:inline-block;padding:8px 16px;border-radius:8px;margin-top:18px;letter-spacing:0.3px;
  }
  .hidden{display:none;}
  .total-row{
    display:flex;justify-content:space-between;align-items:center;
    background:var(--accent-soft);border-radius:8px;padding:12px 14px;
    font-weight:600;font-size:15px;color:var(--accent);
  }
  .caucao-row{
    display:flex;align-items:flex-start;gap:8px;
    background:var(--bg);border:1px solid var(--line);border-radius:8px;
    padding:11px 13px;font-size:13px;color:var(--ink-soft);line-height:1.5;
  }
  .caucao-row i{color:var(--accent);flex-shrink:0;font-size:14px;line-height:1.6;}
  .caucao-row strong{color:var(--ink);}

  .brand-strip{
    display:flex;align-items:center;justify-content:center;gap:28px;
    margin-top:12px;padding-top:12px;border-top:1px solid var(--line);
    flex-wrap:wrap;
  }
  .brand-strip img{display:block;}
  .brand-strip .gr-logo{height:60px;width:auto;}
  .brand-strip .gl-logo{height:80px;width:auto;}
  .brand-strip-label{
    width:100%;text-align:center;font-size:11.5px;color:var(--ink-soft);
    letter-spacing:0.3px;margin-bottom:8px;
  }

  .page-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;}
  .lang-switch{display:flex;justify-content:flex-end;gap:6px;}
  .admin-access-link{
    color:var(--ink-soft);font-size:12px;font-weight:600;text-decoration:none;
    padding:5px 0;border-bottom:1px solid transparent;
  }
  .admin-access-link:hover{color:var(--accent);border-bottom-color:var(--accent);}
  .admin-access-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;}
  .lang-btn{
    font-family:'Inter',sans-serif;font-size:12px;font-weight:600;
    padding:5px 12px;border-radius:999px;border:1px solid var(--line-strong);
    background:var(--panel);color:var(--ink-soft);cursor:pointer;
  }
  .lang-btn.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}

  #landingScreen{
    text-align:center;padding:38px 12px 30px;
  }
  .landing-logo{margin-bottom:22px;}
  .landing-logo img{height:120px;width:auto;}
  .landing-title{
    font-family:'Fraunces',serif;font-weight:600;font-size:30px;
    margin:0 0 14px;line-height:1.2;color:var(--ink);
  }
  .landing-sub{
    color:var(--ink-soft);font-size:15px;line-height:1.6;
    max-width:44ch;margin:0 auto 28px;
  }
  .landing-cta{
    display:inline-block;width:auto;
    font-family:'Inter',sans-serif;font-weight:600;font-size:16px;
    background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;
    padding:15px 38px;cursor:pointer;text-decoration:none;transition:background .12s ease, transform .08s ease;
  }
  .landing-cta:hover{background:#7A0625;}
  .landing-cta:active{transform:scale(0.98);}

  #landingScreen{position:relative;overflow:hidden;border-radius:16px;padding:52px 16px 44px;min-height:640px;}
  .landing-bg{position:absolute;inset:0;overflow:hidden;z-index:0;background:var(--panel);}
  .landing-bg img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;
    opacity:0;animation:bgFade 13s infinite ease-in-out, bgZoom 13s infinite ease-in-out;
  }
  .landing-bg img:nth-child(2){animation-delay:6.5s, 6.5s;}
  .landing-bg-overlay{
    position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg, rgba(244,241,238,0.55) 0%, rgba(244,241,238,0.90) 58%, rgba(244,241,238,0.98) 100%);
  }
  .landing-logo, .landing-title, .landing-sub, .landing-cta{position:relative;z-index:2;}
  @keyframes bgFade{
    0%{opacity:0;} 8%{opacity:1;} 42%{opacity:1;} 50%{opacity:0;} 100%{opacity:0;}
  }
  @keyframes bgZoom{
    0%{transform:scale(1);} 100%{transform:scale(1.09);}
  }

  .admin-page{
    min-height:100vh;display:grid;place-items:center;padding:24px;
    background:linear-gradient(145deg, var(--bg), #eadde0);
  }
  .admin-shell{width:min(100%, 440px);}
  .admin-brand{
    display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;
    color:var(--ink);font-family:'Fraunces',serif;font-size:19px;font-weight:600;text-decoration:none;
  }
  .admin-brand-mark{
    display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
    background:var(--accent);color:var(--accent-ink);font-family:'Inter',sans-serif;font-size:12px;
  }
  .admin-login-card{
    padding:36px;background:var(--panel);border:1px solid var(--line);
    border-radius:14px;box-shadow:0 20px 60px rgba(36,20,23,.10);
  }
  .admin-lock{
    display:grid;place-items:center;width:42px;height:42px;margin-bottom:20px;
    border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;
  }
  .admin-login-card h1{font-size:30px;margin-bottom:8px;}
  .admin-intro{margin:0 0 24px;color:var(--ink-soft);font-size:14px;line-height:1.6;}
  .admin-form .field:last-of-type{margin-bottom:8px;}
  .admin-alert{
    margin-bottom:18px;padding:11px 13px;border-radius:8px;font-size:13px;line-height:1.5;
  }
  .admin-alert-error{background:var(--danger-soft);color:var(--danger);}
  .admin-back{
    display:block;margin-top:20px;text-align:center;color:var(--ink-soft);
    font-size:13px;text-decoration:none;
  }
  .admin-back:hover{color:var(--accent);}
  .admin-dashboard{text-align:center;}

  @media (max-width: 480px){
    .admin-login-card{padding:28px 22px;}
  }

  /* honeypot field: kept out of sight for people */
  .hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
  .avail-hint.warn{color:var(--danger);}
  .avail-hint.ok{color:#26705b;}
  #errSubmit{margin:6px 0 0;}
  .portal-link{display:inline-block;margin-top:14px;color:var(--accent);font-weight:600;font-size:14px;}
  .btn-submit:disabled{opacity:.7;cursor:wait;}
  .btn-submit:hover{background:#7A0625;}

  /* ───────── customer request page (/pedido) ───────── */
  .portal-msg{text-align:center;color:var(--ink-soft);}
  .wrap > .card + .card, #portal .card + .card{margin-top:16px;}
  .steps{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 18px;counter-reset:step;}
  .steps li{flex:1;font-size:11.5px;color:var(--ink-soft);text-align:center;line-height:1.3;}
  .steps li::before{
    counter-increment:step;content:counter(step);display:grid;place-items:center;
    width:26px;height:26px;margin:0 auto 6px;border-radius:50%;
    background:var(--panel);border:1px solid var(--line-strong);font-weight:600;font-size:12px;
  }
  .steps li.done::before{content:"✓";background:var(--accent);border-color:var(--accent);color:#fff;}
  .steps li.current{color:var(--ink);font-weight:600;}
  .steps li.current::before{border:2px solid var(--accent);color:var(--accent);}
  .summary{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:12px 0 0;font-size:14px;}
  .summary dt{color:var(--ink-soft);}
  .summary dd{margin:0;font-weight:500;text-align:right;overflow-wrap:anywhere;}
  .summary .total{font-weight:700;color:var(--accent);}
  .copy-btn{margin-left:8px;border:1px solid var(--line-strong);background:var(--bg);border-radius:6px;font-size:11px;padding:2px 8px;cursor:pointer;}
  .contract-text{white-space:pre-wrap;font-size:13.5px;line-height:1.6;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:16px;max-height:420px;overflow:auto;margin:12px 0 18px;}
  .check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:4px 0 8px;cursor:pointer;}
  .check input{width:auto;margin-top:3px;}
  .signed{background:#e2f0eb;color:#26705b;border-radius:8px;padding:12px 14px;font-size:14px;font-weight:500;}
  @media (max-width:480px){ .steps li{font-size:0;} .steps li.current{font-size:11px;} }
