/*!
Theme Name: thinkbeyond
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: thinkbeyond
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

thinkbeyond is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

html { scroll-behavior: smooth; }

section {
  scroll-margin-top: 120px;
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  animation: fadeUp 0.9s ease forwards;
}

.reveal-delay-1 { animation-delay: .1s; }
.reveal-delay-2 { animation-delay: .2s; }
.reveal-delay-3 { animation-delay: .3s; }

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.glass {
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(10px);
}

/* NAV */
nav a {
    font-weight: 500;
    color: var(--muted);
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: color 0.2s;
}

/* --- THINK BEYOND DESIGN SYSTEM --- */

.orb {
  position: absolute;
  border-radius: 999px;
  filter: blur(40px);
  opacity: 0.35;
  transform: translateZ(0);
}

.field-line {
  position: absolute;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(26,69,67,0.25), transparent);
}

.containment {
  border-radius: 2rem;
  border: 1px solid rgba(26,69,67,0.08);
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(12px);
}

@keyframes floatSlow {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(-18px); }
}

.float-slow {
  animation: floatSlow 8s ease-in-out infinite;
}


/* CURVED LINE ANIMATION */

.path-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: visible;
}

.path-svg {
  position: absolute;
  width: 100%;
  height: 100%;
}

.draw-path {
  stroke-dasharray: 1800;
  stroke-dashoffset: 1800;
  animation: drawLine 2.8s ease forwards;
  animation-delay: 0.3s;
}

@keyframes drawLine {
  to {
    stroke-dashoffset: 0;
  }
}

/* subtle text emphasis */

.editorial-emphasis strong {
  color: #1A4543;
  font-weight: 600;
}

.editorial-emphasis p {
  position: relative;
}

@keyframes grow {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

.brush-path {
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
  animation: brushDraw 1.8s ease forwards;
  animation-delay: .2s;
}

@keyframes brushDraw {
  to {
    stroke-dashoffset: 0;
  }
}

.curve-path {
  stroke-dasharray: 220;
  stroke-dashoffset: 220;
  animation: curveReveal 1.6s cubic-bezier(.65,.05,.36,1) forwards;
  animation-delay: .2s;
}

@keyframes curveReveal {
  to {
    stroke-dashoffset: 0;
  }
}

.curve-path {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  transition: stroke-dashoffset 1.4s ease;
}

.curve-path.visible {
  stroke-dashoffset: 0;
}


.underline-animate {
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgb(255 255 255 / 65%);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s ease 0.3s;
}

.underline-animate.visible {
  transform: scaleX(1);
}

.blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  user-select: none;
}

.blob-1 {
  width: 480px; height: 480px;
  background: rgba(26,69,67,0.07);
  border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
  top: -60px; right: -80px;
  animation: morph 12s ease-in-out infinite alternate;
}

.blob-2 {
  width: 220px; height: 220px;
  background: #d9c2a3;
  opacity: 0.45;
  border-radius: 30% 70% 60% 40% / 50% 30% 70% 50%;
  bottom: 120px; right: 38%;
  animation: morph 9s ease-in-out infinite alternate-reverse;
}

.blob-3 {
  width: 140px; height: 140px;
  background: #9caf88;
  opacity: 0.3;
  border-radius: 70% 30% 50% 50% / 40% 60% 40% 60%;
  top: 180px; left: 42%;
  animation: morph 14s ease-in-out infinite alternate;
}


@keyframes morph {
  0%   { border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%; }
  50%  { border-radius: 40% 60% 30% 70% / 60% 40% 60% 40%; }
  100% { border-radius: 50% 50% 40% 60% / 30% 70% 50% 50%; }
}


.btn-submit {
  width: auto;
  font-weight: 600;
  padding: 1rem 3rem;
  background-color: rgb(26 69 67);
  color: #fff;
  border-radius: 9999px;
  font-size: 1rem;
  transition: transform 0.2s ease;
  display: inline-block;
}

.btn-submit:hover {
  transform: scale(1.02);
}



/* simple pages */

.entry-content {
  font-size: 16px;
  line-height: 1.8;
  color: #1A4543;
  max-width: 780px;
}

/* Main title — hide the duplicate since it's already in entry-header */
.entry-content p.p1 {
  display: none;
}

/* Section headings */
.entry-content p.p4 {
  font-size: 18px;
  font-weight: 700;
  color: #1A4543;
  margin-top: 2.5rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(26, 69, 67, 0.1);
}

/* Sub-headings (e.g. Children, Adults) */
.entry-content p.p5 {
  font-size: 15px;
  font-weight: 600;
  color: #1A4543;
  margin-top: 1.25rem;
  margin-bottom: 0.25rem;
}

/* Body text */
.entry-content p.p2 {
  color: rgba(26, 69, 67, 0.75);
  margin-bottom: 0.75rem;
}

/* Empty spacer paragraphs */
.entry-content p.p3 {
  display: none;
}

/* Lists */
.entry-content ul.ul1 {
  padding-left: 0;
  list-style: none;
  margin: 0.75rem 0 1rem;
}

.entry-content ul.ul1 li.li2 {
  position: relative;
  padding-left: 1.25rem;
  color: rgba(26, 69, 67, 0.75);
  margin-bottom: 0.5rem;
  line-height: 1.7;
}

.entry-content ul.ul1 li.li2::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(26, 69, 67, 0.3);
}

/* Bold text within body */
.entry-content p.p2 b,
.entry-content li.li2 b {
  color: #1A4543;
  font-weight: 600;
}

/* Contact section address/phone */
.entry-content p.p2:last-of-type {
  font-style: italic;
  color: rgba(26, 69, 67, 0.5);
  font-size: 14px;
}

/* Page title */
.entry-title {
  font-size: 36px;
  font-weight: 700;
  color: #1A4543;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(26, 69, 67, 0.1);
}

.site-main {
  max-width: 900px;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}