/* =========  ROOT VARIABLES  ========= */
:root{
  /* Neutral palette */
  --bg-main:#f0f2f5;
  --bg-surface:#e6e9ef;
  --bg-elevated:#ffffff;
  --txt-primary:#222222;
  --txt-secondary:#555555;
  --txt-inverse:#ffffff;

  /* Accent */
  --accent:#4c8bf5;
  --accent-dark:#3a6dd1;
  --accent-light:#a8c5ff;

  /* Neomorphism shadows */
  --shadow-light:rgba(255,255,255,0.8);
  --shadow-dark:rgba(163,177,198,0.6);

  /* Transition */
  --quick: .25s ease;
}

/* =========  GLOBAL RESET / TYPOGRAPHY  ========= */
html,body{
  margin:0;
  padding:0;
  font-family:'IBM Plex Sans',Arial,Helvetica,sans-serif;
  background:var(--bg-main);
  color:var(--txt-primary);
  scroll-behavior:smooth;
}

h1,h2,h3,h4,h5,h6{
  font-family:'Inter',sans-serif;
  color:var(--txt-primary);
  line-height:1.2;
  margin-bottom:.5em;
}

/* =========  HERO  ========= */
.hero{
  position:relative;
  color:var(--txt-inverse);
}
.hero .title,
.hero .subtitle{color:var(--txt-inverse);}

/* =========  BUTTONS & LINKS  ========= */
.btn,
button,
input[type='submit']{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.25rem;
  padding:.75rem 1.5rem;
  border:none;
  border-radius:12px;
  background:var(--bg-surface);
  color:var(--txt-primary);
  font-weight:600;
  box-shadow:8px 8px 16px var(--shadow-dark),
             -8px -8px 16px var(--shadow-light);
  transition:transform var(--quick),box-shadow var(--quick),background var(--quick);
  cursor:pointer;
}
.btn.is-primary,
button.is-primary,
input[type='submit'].is-primary{
  background:var(--accent);
  color:#fff;
  box-shadow:0 8px 18px rgba(76,139,245,.3);
}
.btn:hover,
button:hover,
input[type='submit']:hover{
  transform:translateY(-2px);
  box-shadow:4px 4px 10px var(--shadow-dark),
             -4px -4px 10px var(--shadow-light);
}
.btn:active,
button:active{
  transform:translateY(1px);
}

/* =========  CARD / NEOMORPHIC SURFACE  ========= */
.card{
  background:var(--bg-surface);
  border-radius:18px;
  box-shadow:8px 8px 16px var(--shadow-dark),
             -8px -8px 16px var(--shadow-light);
  transition:box-shadow var(--quick),transform var(--quick);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.card:hover{
  transform:translateY(-6px) scale(1.02);
  box-shadow:12px 12px 24px var(--shadow-dark),
             -12px -12px 24px var(--shadow-light);
}

/* image container for strict center crop */
.image-container,
.card-image{
  width:100%;
  height:260px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.image-container img,
.card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0 auto;
}

/* =========  PARALLAX UTILITY  ========= */
.parallax{
  background-attachment:fixed;
  background-size:cover;
  background-repeat:no-repeat;
}

/* =========  SECTIONS & LAYOUT  ========= */
section{
  padding:4rem 0;
}
.section.has-background-light{
  background:var(--bg-elevated);
}
.columns>.column{
  text-align:center;
}

/* =========  NEOMORPHIC INPUTS  ========= */
input:not([type='submit']),
textarea{
  background:var(--bg-surface);
  border:none;
  border-radius:12px;
  padding:1rem;
  width:100%;
  box-shadow:inset 6px 6px 12px var(--shadow-dark),
             inset -6px -6px 12px var(--shadow-light);
  transition:box-shadow var(--quick);
}
input:focus,
textarea:focus{
  outline:none;
  box-shadow:inset 4px 4px 8px var(--shadow-dark),
             inset -4px -4px 8px var(--shadow-light);
}

/* =========  LINKS & INTERACTIONS  ========= */
a{
  color:var(--accent-dark);
  transition:color var(--quick);
}
a:hover{
  color:var(--accent);
  text-decoration:underline;
}
.read-more{
  font-weight:600;
  position:relative;
}
.read-more::after{
  content:'→';
  margin-left:.25rem;
  transition:transform var(--quick);
}
.read-more:hover::after{
  transform:translateX(4px);
}

/* =========  NAVBAR (override Bulma)  ========= */
.navbar{
  background:var(--bg-surface);
  box-shadow:4px 4px 12px var(--shadow-dark),
             -4px -4px 12px var(--shadow-light);
}
.navbar-item:hover{
  background:var(--bg-main);
}

/* =========  FOOTER  ========= */
footer.footer{
  padding:3rem 1.5rem;
  color:var(--txt-inverse);
  background:#1e1e1e;
}
footer a{
  color:var(--accent-light);
}
footer a:hover{
  color:var(--accent);
  text-decoration:underline;
}

/* Social links styled as inline icons without images */
footer .social-link{
  position:relative;
  padding-left:1.5em;
  margin-right:1rem;
}
footer .social-link::before{
  content:'#';
  position:absolute;
  left:0;
  color:var(--accent-light);
}

/* =========  SUCCESS PAGE  ========= */
.page-success{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
}

/* =========  PRIVACY & TERMS  ========= */
.page-legal{
  padding-top:100px;
}

/* =========  ANIMATIONS / 3D EFFECTS  ========= */
@keyframes float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}
.float{
  animation:float 6s ease-in-out infinite;
}
@keyframes tilt{
  0%{transform:rotateX(0deg) rotateY(0deg);}
  50%{transform:rotateX(6deg) rotateY(-6deg);}
  100%{transform:rotateX(0deg) rotateY(0deg);}
}
.tilt-3d{
  animation:tilt 8s ease-in-out infinite;
  transform-style:preserve-3d;
}

/* =========  UTILITIES  ========= */
.text-center{text-align:center;}
.mt-6{margin-top:3rem;}
.pt-6{padding-top:3rem;}
.no-select{user-select:none;}
.paragraph-large{font-size:1.125rem;line-height:1.8;}
.hidden{display:none!important;}
.navbar-burger{
  display: none;
}