: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{margin:18px 0 26px;}
  .top-logo img{width:min(260px,70%);height: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;}
  .field-row.phone-row{grid-template-columns:132px 1fr;}
  /* Phones: one field per line, so labels and fields never misalign. */
  @media (max-width:520px){ .field-row:not(.phone-row){grid-template-columns:1fr;row-gap:0;} }

  /* Same look and height for every field on every browser (iOS Safari draws date
     inputs and selects with its own sizes otherwise). 16px avoids the iOS zoom on focus. */
  input:not([type=checkbox]):not([type=radio]), select{
    -webkit-appearance:none;appearance:none;
    display:block;width:100%;min-width:0;max-width:100%;height:46px;margin:0;
    font-family:'Inter',sans-serif;font-size:16px;line-height:1.25;
    padding:0 14px;border-radius:10px;border:1px solid var(--line-strong);
    background-color:var(--bg);color:var(--ink);
  }
  select{
    padding-right:40px;cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236B5C5F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px;
  }
  input[type=date]{text-align:left;}
  input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0;}
  input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;}
  .field-row > *{min-width:0;}
  input::placeholder{color:#a3979a;}
  input:focus, select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
  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 !important;}
  .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);}

  /* Game Ready is the main brand; Glacial Recovery appears as its representative. */
  .brand-strip{
    display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;
    margin-top:22px;padding-top:20px;border-top:1px solid var(--line);
  }
  .brand-strip img{display:block;}
  .brand-strip .gr-logo{width:200px;height:auto;}
  .brand-by{display:flex;flex-direction:column;gap:6px;padding-left:22px;border-left:1px solid var(--line);}
  .brand-strip-label{font-size:11px;color:var(--ink-soft);letter-spacing:.4px;text-transform:uppercase;}
  .brand-line{display:flex;align-items:center;gap:9px;}
  .brand-line img{height:42px;width:auto;}
  .brand-line strong{display:block;font-family:'Fraunces',serif;font-size:15px;font-weight:600;color:#1d4f5c;line-height:1.1;}
  .brand-line small{display:block;font-size:11.5px;color:var(--ink-soft);}
  @media (max-width:420px){ .brand-by{border-left:0;padding-left:0;align-items:center;} }
  /* Small brand footer used on the landing and customer pages */
  .site-foot{display:flex;align-items:center;justify-content:center;gap:10px;margin:26px 0 6px;color:var(--ink-soft);font-size:12px;text-align:left;}
  .site-foot img{height:34px;width:auto;}
  .site-foot strong{display:block;color:#1d4f5c;font-family:'Fraunces',serif;font-size:13.5px;}
  @media (max-width:520px){ .site-foot{flex-direction:column;text-align:center;gap:6px;padding:0 12px;} }

  .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:28px 0 34px;}
  .landing-logo img{width:min(280px,75%);height: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 img{height:44px;width:auto;}
  .admin-brand small{display:block;font-family:'Inter',sans-serif;font-size:11.5px;font-weight:500;color:var(--ink-soft);}
  .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;}
  #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;} }
