/*
Theme Name: Flot3D forsíða
Text Domain: flot3d-forsida
Description: Forsíða Flot3D byggð á samþykktri HTML-hönnun.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
WPVibe: yes
*/
:root{
    --paper:#F4F7F8;
    --basalt:#131C22;
    --slate:#4A5860;
    --line:#D8E0E4;
    --signal:#E8551E;
    --signal-dark:#C7440F;
    --card:#FFFFFF;
    --dark-band:#131C22;
    --dark-text:#E8EEF1;
    --dark-muted:#8FA0AB;
    --maxw:1120px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:'IBM Plex Sans',system-ui,sans-serif;
    background:var(--paper);
    color:var(--basalt);
    line-height:1.6;
    font-size:16px;
  }
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .mono{font-family:'IBM Plex Mono',monospace}

  /* ---------- Header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(244,247,248,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;height:64px}
  .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--basalt)}
  .gcp{
    width:22px;height:22px;flex:0 0 22px;
    background:
      linear-gradient(45deg,var(--signal) 25%,transparent 25%) 0 0/11px 11px,
      linear-gradient(-135deg,var(--signal) 25%,transparent 25%) 0 0/11px 11px,
      #fff;
    background-position:0 0, 11px 11px;
    border:1.5px solid var(--basalt);
    border-radius:3px;
  }
  .brand b{font-family:'Archivo',sans-serif;font-weight:800;font-size:19px;letter-spacing:-.02em}
  .brand b span{color:var(--signal)}
  nav.links{display:flex;gap:26px}
  nav.links a{color:var(--slate);text-decoration:none;font-size:14.5px;font-weight:500}
  nav.links a:hover{color:var(--basalt)}
  .btn{
    display:inline-block;font-family:'IBM Plex Sans',sans-serif;font-weight:600;
    font-size:15px;text-decoration:none;border-radius:6px;
    padding:11px 22px;transition:background .15s ease, color .15s ease;
  }
  .btn-primary{background:var(--signal);color:#fff}
  .btn-primary:hover{background:var(--signal-dark)}
  .btn-ghost{border:1.5px solid var(--basalt);color:var(--basalt)}
  .btn-ghost:hover{background:var(--basalt);color:#fff}
  .btn:focus-visible,a:focus-visible{outline:3px solid var(--signal);outline-offset:2px}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;overflow:hidden;
    padding:88px 0 72px;
    background-image:radial-gradient(var(--line) 1.3px, transparent 1.3px);
    background-size:26px 26px;
  }
  .hero-inner{position:relative}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.14em;
    color:var(--slate);text-transform:uppercase;margin-bottom:22px;
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  }
  .eyebrow .tick{width:26px;height:1.5px;background:var(--signal);display:inline-block}
  h1{
    font-family:'Archivo',sans-serif;font-weight:800;
    font-size:clamp(38px,6vw,64px);line-height:1.04;letter-spacing:-.025em;
    max-width:15ch;
  }
  h1 em{font-style:normal;color:var(--signal)}
  .hero p.lede{
    margin-top:24px;font-size:19px;color:var(--slate);max-width:52ch;
  }
  .hero-cta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
  /* measurement annotation — the signature */
  .dim{
    position:absolute;right:0;top:6px;height:calc(100% - 12px);
    display:flex;align-items:stretch;gap:10px;
  }
  .dim .rule{
    width:1.5px;background:var(--basalt);position:relative;
  }
  .dim .rule::before,.dim .rule::after{
    content:"";position:absolute;left:-6px;width:13px;height:1.5px;background:var(--basalt);
  }
  .dim .rule::before{top:0}
  .dim .rule::after{bottom:0}
  .dim .label{
    writing-mode:vertical-rl;font-family:'IBM Plex Mono',monospace;
    font-size:12px;color:var(--slate);letter-spacing:.08em;align-self:center;
  }
  .coords{
    margin-top:56px;display:flex;gap:28px;flex-wrap:wrap;
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--slate);
  }
  .coords span b{color:var(--basalt);font-weight:500}

  /* ---------- Sections base ---------- */
  section{padding:80px 0}
  .sec-head{margin-bottom:44px;max-width:60ch}
  .sec-eyebrow{
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--signal);margin-bottom:12px;
  }
  h2{
    font-family:'Archivo',sans-serif;font-weight:800;
    font-size:clamp(26px,3.6vw,38px);letter-spacing:-.02em;line-height:1.12;
  }
  .sec-head p{margin-top:14px;color:var(--slate);font-size:17px}

  /* ---------- Demo viewer ---------- */
  .viewer{
    border:1.5px solid var(--basalt);border-radius:10px;background:var(--card);
    overflow:hidden;box-shadow:0 20px 50px -30px rgba(19,28,34,.35);
  }
  .viewer-bar{
    display:flex;align-items:center;justify-content:space-between;
    padding:10px 16px;border-bottom:1.5px solid var(--basalt);
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--slate);
  }
  .viewer-bar .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--signal);margin-right:8px}
  .viewer-body{
    aspect-ratio:16/8.5;display:flex;align-items:center;justify-content:center;
    background:
      radial-gradient(rgba(19,28,34,.14) 1.3px, transparent 1.3px) 0 0/22px 22px,
      linear-gradient(160deg,#EAF0F2,#DDE6EA);
    text-align:center;padding:24px;
  }
  .viewer-body .ph{max-width:46ch;color:var(--slate)}
  .viewer-body .ph b{display:block;font-family:'Archivo',sans-serif;font-weight:700;color:var(--basalt);font-size:18px;margin-bottom:8px}

  /* ---------- Process ---------- */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .services{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
  .services .step{min-height:190px}
  .muted-note{color:var(--slate);font-size:14px;margin-top:18px}
  section[id]{scroll-margin-top:76px}
  .step{
    background:var(--card);border:1px solid var(--line);border-radius:10px;
    padding:26px 24px;position:relative;
  }
  .step .num{
    font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--signal);
    letter-spacing:.1em;margin-bottom:14px;display:block;
  }
  .step h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:19px;margin-bottom:8px;letter-spacing:-.01em}
  .step p{color:var(--slate);font-size:15px}

  /* ---------- Packages ---------- */
  .packs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
  .pack{
    background:var(--card);border:1px solid var(--line);border-radius:10px;
    padding:30px 26px;display:flex;flex-direction:column;position:relative;
  }
  .pack.featured{border:2px solid var(--basalt)}
  .pack .flag{
    position:absolute;top:-12px;left:24px;background:var(--basalt);color:#fff;
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;
    text-transform:uppercase;padding:4px 10px;border-radius:4px;
  }
  .pack .gcp{width:18px;height:18px;flex:0 0 18px;background-size:9px 9px;background-position:0 0,9px 9px;margin-bottom:16px}
  .pack h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.015em;margin-bottom:6px}
  .pack .for{color:var(--slate);font-size:14.5px;margin-bottom:18px}
  .pack ul{list-style:none;margin:0 0 22px;flex:1}
  .pack ul li{
    padding:8px 0 8px 26px;position:relative;font-size:15px;border-top:1px solid var(--line);
  }
  .pack ul li:first-child{border-top:none}
  .pack ul li::before{
    content:"";position:absolute;left:2px;top:14px;width:12px;height:12px;
    border:1.5px solid var(--signal);border-radius:3px;
    background:linear-gradient(45deg,var(--signal) 50%,transparent 50%);
  }
  .pack .price{
    font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--slate);
    margin-bottom:16px;
  }
  .pack .price b{
    font-family:'Archivo',sans-serif;font-weight:800;font-size:26px;color:var(--basalt);
    letter-spacing:-.02em;display:block;
  }
  .addons{
    margin-top:26px;background:transparent;border:1.5px dashed var(--line);
    border-radius:10px;padding:20px 24px;color:var(--slate);font-size:15px;
  }
  .addons b{color:var(--basalt)}

  /* ---------- Húsfélög dark band ---------- */
  .darkband{background:var(--dark-band);color:var(--dark-text)}
  .darkband .sec-eyebrow{color:var(--signal)}
  .darkband h2{color:#fff}
  .darkband .sec-head p{color:var(--dark-muted)}
  .qa{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
  .qa .item{
    border:1px solid #24323B;border-radius:10px;padding:24px;
    background:rgba(255,255,255,.02);
  }
  .qa .item h3{
    font-family:'Archivo',sans-serif;font-weight:700;font-size:17.5px;
    margin-bottom:8px;color:#fff;letter-spacing:-.01em;
  }
  .qa .item p{color:var(--dark-muted);font-size:15px}
  .qa .item .q{
    font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--signal);
    letter-spacing:.1em;display:block;margin-bottom:10px;
  }

  /* ---------- Dæmi ---------- */
  .cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .case{
    border:1px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden;
    text-decoration:none;color:var(--basalt);display:block;transition:transform .15s ease;
  }
  .case:hover{transform:translateY(-3px)}
  .case .thumb{
    aspect-ratio:16/9;
    background:
      radial-gradient(rgba(19,28,34,.16) 1.2px, transparent 1.2px) 0 0/18px 18px,
      linear-gradient(150deg,#E4EBEE,#D2DDE2);
    display:flex;align-items:flex-end;padding:12px;
  }
  .case .thumb span{
    font-family:'IBM Plex Mono',monospace;font-size:11.5px;background:var(--basalt);
    color:#fff;padding:3px 8px;border-radius:4px;letter-spacing:.06em;
  }
  .case .body{padding:18px 20px}
  .case .body h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.01em}
  .case .body p{color:var(--slate);font-size:14.5px;margin-top:4px}

  /* ---------- Contact / footer ---------- */
  .contact{
    border-top:1.5px solid var(--basalt);
  }
  .contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start}
  .contact .big{
    font-family:'Archivo',sans-serif;font-weight:800;
    font-size:clamp(26px,3.4vw,36px);letter-spacing:-.02em;line-height:1.15;
  }
  .contact p.sub{margin-top:14px;color:var(--slate);max-width:46ch}
  .contact-card{
    background:var(--card);border:1px solid var(--line);border-radius:10px;padding:28px;
  }
  .contact-card .row{
    display:flex;justify-content:space-between;gap:16px;
    padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;
  }
  .contact-card .row:last-child{border-bottom:none}
  .contact-card .row .k{color:var(--slate)}
  .contact-card .row .v{font-weight:600;text-align:right}
  .contact-card .row .v a{color:var(--basalt)}
  footer{
    border-top:1px solid var(--line);padding:26px 0 40px;color:var(--slate);
    font-size:13.5px;
  }
  .foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}

  /* ---------- Reveal on scroll ---------- */
  .rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
  .rv.in{opacity:1;transform:none}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    .rv{opacity:1;transform:none;transition:none}
    .case:hover{transform:none}
  }

  /* ---------- Responsive ---------- */
  @media (max-width:900px){
    .steps,.packs,.cases,.services{grid-template-columns:1fr}
    .qa{grid-template-columns:1fr}
    .contact-grid{grid-template-columns:1fr}
    .dim{display:none}
    .nav{height:auto;min-height:64px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px;gap:12px}
    nav.links{display:flex;order:3;width:100%;overflow-x:auto;gap:18px;padding-bottom:4px;white-space:nowrap}
    nav.links a{font-size:13px}
    .nav>.btn{padding:8px 12px;font-size:13px}
    section{padding:60px 0}
    .hero{padding:64px 0 56px}
  }
