/*
Theme Name: moreNET
Theme URI: https://www.morenet.at
Author: moreNET
Author URI: https://www.morenet.at
Description: Individuelles WordPress-Theme für moreNET – IT-Dienstleistungen aus Wien. Enthält Startseite, Leistungsseiten-Vorlage, Über-uns- und Kontakt-Template im überarbeiteten Marken-Look (Navy/Amber, IBM Plex).
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: morenet
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
  --navy-900: oklch(0.24 0.055 255);
  --navy-700: oklch(0.34 0.06 255);
  --navy-050: oklch(0.965 0.01 255);
  --ink: oklch(0.20 0.02 255);
  --muted: oklch(0.50 0.02 255);
  --line: oklch(0.89 0.01 255);
  --paper: oklch(0.995 0.003 255);
  --accent: oklch(0.72 0.16 55);
  --accent-dark: oklch(0.55 0.16 55);
  --footer-text: oklch(0.72 0.02 255);
  --footer-muted: oklch(0.58 0.02 255);
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--paper);
  font-family: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  color: var(--ink);
  font-size: 16px;
}
h1,h2,h3,h4{
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  margin:0;
  letter-spacing: -0.02em;
  color: var(--navy-900);
}
p{ margin:0; line-height:1.6; }
a{ color: var(--navy-900); text-decoration:none; }
a:hover{ color: var(--accent-dark); }
img{ max-width:100%; height:auto; display:block; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.09em;
  text-transform:uppercase;
  font-size:12.5px;
  color: var(--accent-dark);
  font-weight:500;
  display:inline-block;
}

.wrap{ max-width:1440px; margin:0 auto; padding-left:64px; padding-right:64px; }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:15px 26px; border-radius:4px; font-weight:600; font-size:15px;
  border:1px solid transparent; transition: background .15s ease, color .15s ease;
}
.btn-primary{ background: var(--navy-900); color: var(--paper); }
.btn-primary:hover{ background: var(--navy-700); color: var(--paper); }
.btn-accent{ background: var(--accent); color: var(--navy-900); }
.btn-accent:hover{ background: var(--accent-dark); color:#fff; }
.btn-ghost{ border-color: var(--line); color: var(--navy-900); background: var(--paper); }
.btn-ghost:hover{ background: var(--navy-050); }

.card{ border:1px solid var(--line); background: var(--paper); padding:28px; border-radius:6px; }

.icon-badge{
  width:52px; height:52px; border-radius:6px; background: var(--navy-050);
  display:flex; align-items:center; justify-content:center; color: var(--navy-900);
}
.icon-badge svg{ stroke:currentColor; }

/* ==========================================================================
   Site header / navigation
   ========================================================================== */
.site-header{
  position: sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 64px; height:84px; background: var(--paper); border-bottom:1px solid var(--line);
}
.site-logo{ display:flex; align-items:center; gap:10px; font-size:22px; font-weight:700; color: var(--navy-900); }
.site-logo .accent{ color: var(--accent-dark); }
.site-logo img{ max-height:36px; width:auto; }

.primary-nav ul{ display:flex; align-items:center; gap:36px; }
.primary-nav li{ position:relative; }
.primary-nav a{ font-size:15px; font-weight:500; color: var(--ink); padding-bottom:6px; display:inline-block; }
.primary-nav .current-menu-item > a,
.primary-nav .current-menu-ancestor > a,
.primary-nav .current_page_item > a{
  color: var(--navy-900); font-weight:600; border-bottom:2px solid var(--accent);
}
.primary-nav .sub-menu{
  display:none; position:absolute; left:0; top:100%; padding:10px; margin-top:6px;
  background: var(--paper); border:1px solid var(--line); border-radius:6px; min-width:210px;
  box-shadow:0 12px 28px oklch(0.2 0.02 255 / 0.10);
}
.primary-nav li:hover > .sub-menu{ display:block; }
.primary-nav .sub-menu a{ display:block; padding:8px 10px; border-radius:4px; font-weight:500; }
.primary-nav .sub-menu a:hover{ background: var(--navy-050); }

.header-actions{ display:flex; align-items:center; gap:22px; }
.header-actions .phone{ font-size:14px; font-weight:600; color: var(--navy-900); white-space:nowrap; }
.header-actions .btn{ padding:11px 20px; font-size:14px; }

.menu-toggle{ display:none; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{ display:flex; gap:64px; align-items:center; max-width:1440px; margin:0 auto; padding:104px 64px 88px; }
.hero-narrow{ padding:96px 64px 20px; display:block; }
.hero-copy{ flex:1; display:flex; flex-direction:column; gap:24px; max-width:600px; }
.hero h1{ font-size:54px; line-height:1.08; font-weight:700; }
.hero-narrow h1{ font-size:44px; line-height:1.1; max-width:760px; }
.hero p.lead{ font-size:18px; color: var(--muted); max-width:520px; }
.hero-visual{ flex:1; position:relative; display:flex; justify-content:center; }
.hero-panel{
  width:100%; max-width:460px; aspect-ratio:1.25/1; background: var(--navy-050);
  border:1px solid var(--line); border-radius:8px; display:flex; align-items:center; justify-content:center; padding:24px;
}
.hero-stat{
  position:absolute; left:-16px; bottom:-20px; background: var(--paper); border:1px solid var(--line);
  border-radius:6px; padding:16px 20px; box-shadow:0 8px 24px oklch(0.2 0.02 255 / 0.08);
}
.hero-stat .num{ font-size:26px; font-weight:700; color: var(--navy-900); }
.hero-stat .label{ font-size:13px; color: var(--muted); }
.hero-badge{ position:absolute; right:0; top:-18px; background: var(--navy-900); border-radius:6px; padding:12px 18px; font-size:13px; font-weight:600; color: var(--paper); }

/* ==========================================================================
   Sections
   ========================================================================== */
section.block{ max-width:1440px; margin:0 auto; padding:96px 64px; }
.block-head{ max-width:640px; display:flex; flex-direction:column; gap:16px; margin-bottom:56px; }
.block-head h2{ font-size:36px; font-weight:700; }

.trust-bar{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:28px 64px; }
.trust-bar .wrap{ display:flex; align-items:center; gap:40px; justify-content:space-between; flex-wrap:wrap; }
.trust-bar .label{ font-size:13px; color: var(--muted); white-space:nowrap; }
.trust-bar .marks{ display:flex; gap:48px; flex-wrap:wrap; }
.trust-bar .marks span{ font-family:'IBM Plex Mono', monospace; font-size:14px; color: var(--muted); letter-spacing:0.04em; }

.grid-3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px; }
.grid-2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px; }
.grid-4{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; }

.service-card{ display:flex; flex-direction:column; gap:16px; }
.service-card h3{ font-size:19px; font-weight:700; }
.service-card p{ font-size:15px; color: var(--muted); }
.service-card .more{ font-size:14px; font-weight:600; }

.why-section{ background: var(--navy-900); padding:96px 64px; }
.why-section .block-head h2{ color: var(--paper); }
.why-section .eyebrow{ color: var(--accent); }
.why-item{ display:flex; flex-direction:column; gap:14px; }
.why-item h3{ font-size:17px; font-weight:700; color: var(--paper); }
.why-item p{ font-size:14.5px; color: var(--footer-text); }
.why-item svg{ stroke: var(--accent); }

.value-item{ display:flex; flex-direction:column; gap:14px; }
.value-item svg{ stroke: var(--accent-dark); }
.value-item h3{ font-size:17px; font-weight:700; }
.value-item p{ font-size:14.5px; color: var(--muted); }

.testimonial .quote-mark{ font-size:36px; font-family:'IBM Plex Mono', monospace; color: var(--accent-dark); line-height:1; }
.testimonial p{ font-size:17px; margin-top:8px; }
.testimonial .who{ margin-top:20px; font-size:14px; font-weight:600; color: var(--navy-900); }

.cta-panel{
  background: var(--navy-050); border:1px solid var(--line); border-radius:8px; padding:64px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.cta-panel.dark{ background: var(--navy-900); border-color: var(--navy-900); }
.cta-panel.dark h2, .cta-panel.dark p{ color: var(--paper); }
.cta-panel h2{ font-size:30px; font-weight:700; max-width:520px; }
.cta-panel p{ font-size:16px; color: var(--muted); }

.paket-box{ background: var(--navy-900); border-radius:8px; padding:56px; display:flex; gap:48px; flex-wrap:wrap; }
.paket-box .paket-head{ flex:1; min-width:260px; max-width:320px; display:flex; flex-direction:column; gap:12px; }
.paket-box .paket-head h3{ font-size:26px; font-weight:700; color: var(--paper); }
.paket-box .paket-head p{ font-size:15px; color: var(--footer-text); }
.paket-box .paket-items{ flex:1.4; min-width:280px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 32px; }
.paket-box .paket-items span{ font-size:14.5px; color: var(--paper); }

.subnav{ border-bottom:1px solid var(--line); padding:20px 64px; }
.subnav .wrap{ display:flex; gap:12px; flex-wrap:wrap; padding:0; }
.pill{ font-size:14px; font-weight:600; padding:9px 18px; border-radius:20px; border:1px solid var(--line); color: var(--muted); }
.pill:hover{ color: var(--navy-900); }
.pill.is-active{ background: var(--navy-900); color: var(--paper); border-color: var(--navy-900); }

.team-card{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.team-photo{ width:72px; height:72px; border-radius:6px; background: var(--navy-050); display:flex; align-items:center; justify-content:center; color: var(--muted); font-family:'IBM Plex Mono', monospace; font-size:13px; overflow:hidden; }
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-card .name{ font-size:15px; font-weight:700; color: var(--navy-900); }
.team-card .role{ font-size:13.5px; color: var(--muted); }
.placeholder-note{ font-size:13.5px; color: var(--muted); margin-top:20px; }

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-grid{ max-width:1440px; margin:0 auto; padding:56px 64px 96px; display:flex; gap:56px; flex-wrap:wrap; }
.contact-info{ flex:1; min-width:320px; display:flex; flex-direction:column; gap:24px; max-width:420px; }
.info-card{ border:1px solid var(--line); border-radius:8px; padding:32px; display:flex; flex-direction:column; gap:20px; }
.info-card .k{ font-size:13px; font-weight:600; color: var(--muted); text-transform:uppercase; letter-spacing:0.04em; }
.info-card .v{ font-size:16px; color: var(--ink); }
.info-card .v.big{ font-size:19px; font-weight:700; color: var(--navy-900); }
.map-placeholder{ border:1px solid var(--line); border-radius:8px; background: var(--navy-050); height:220px; display:flex; align-items:center; justify-content:center; color: var(--muted); font-family:'IBM Plex Mono', monospace; font-size:13px; text-align:center; padding:16px; }

.contact-form-wrap{ flex:1.2; min-width:320px; border:1px solid var(--line); border-radius:8px; padding:40px; }
.contact-form-wrap h3{ font-size:20px; font-weight:700; margin-bottom:24px; }
.form-row{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.form-field{ flex:1; min-width:220px; display:flex; flex-direction:column; gap:8px; }
.form-field label{ font-size:13.5px; font-weight:600; color: var(--navy-900); }
.form-field input, .form-field textarea{
  border:1px solid var(--line); border-radius:4px; padding:12px 14px; font-size:15px; color: var(--ink);
  font-family:'IBM Plex Sans', sans-serif; background: var(--paper); width:100%;
}
.form-field textarea{ min-height:110px; resize:vertical; }
.form-submit{ border:none; width:100%; justify-content:center; margin-top:6px; }
.form-notice{ padding:14px 18px; border-radius:6px; font-size:14.5px; margin-bottom:20px; }
.form-notice.success{ background: oklch(0.93 0.06 145); color: oklch(0.32 0.08 145); }
.form-notice.error{ background: oklch(0.93 0.06 25); color: oklch(0.35 0.1 25); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background: var(--navy-900); padding:72px 64px 32px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px; padding-bottom:48px; border-bottom:1px solid oklch(0.34 0.05 255); }
.footer-brand{ display:flex; flex-direction:column; gap:14px; max-width:280px; }
.footer-brand .logo{ font-size:20px; font-weight:700; color: var(--paper); }
.footer-brand .logo .accent{ color: var(--accent); }
.footer-brand p{ font-size:14px; color: var(--footer-text); }
.footer-col{ display:flex; flex-direction:column; gap:12px; }
.footer-col .head{ font-size:13px; font-weight:600; color: var(--paper); text-transform:uppercase; letter-spacing:0.04em; }
.footer-col a, .footer-col span{ font-size:14px; color: var(--footer-text); }
.footer-bottom{ display:flex; justify-content:space-between; padding-top:24px; font-size:13px; color: var(--footer-muted); flex-wrap:wrap; gap:10px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 960px){
  .wrap, section.block, .hero, .hero-narrow, .contact-grid, .site-header, .trust-bar, .subnav{ padding-left:24px; padding-right:24px; }
  .primary-nav{ display:none; }
  .menu-toggle{ display:inline-flex; }
  .hero{ flex-direction:column; padding-top:56px; padding-bottom:56px; }
  .hero h1{ font-size:38px; }
  .grid-3, .grid-4{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .why-section, section.block{ padding-top:64px; padding-bottom:64px; }
  .paket-box{ flex-direction:column; }
  .cta-panel{ flex-direction:column; align-items:flex-start; }
}
@media (max-width: 600px){
  .grid-3, .grid-4, .grid-2{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .hero h1{ font-size:30px; }
}
