/* Colors */

:root {
--accent: #D87566;
--accent-dark: #A9574F;
--accent-soft: #FBEDE8;
--accent-mid: #F1C7BF;
--contact-pink: #F7EEE7;
--pink-pale: #FFF8F4;
--gray-soft: #F7E5E0;
--gray-mid: #E7E4DF;
--paper: #FFFDF9;
--ink: #2A2A2D;
--navy: #313239;
--muted: #6F7074;
--line: #E6E1DC;
--sidebar: 250px;
--shadow: 0 16px 38px rgba(28, 29, 35, 0.08);
--shadow-large: 0 30px 80px rgba(20, 21, 26, 0.22);
--sage: #7EA59B;
--sage-soft: #EDF4F1;
--sky: #8CA9C2;
--sky-soft: #EEF4F8;
--gold: #C7A66A;
--gold-soft: #F7F1E5;
}

/* Basic setup */

*,
*::before,
*::after {
box-sizing: border-box;
}

html {
scroll-behavior: smooth;
}

body {
margin: 0;
min-height: 100vh;
background: var(--gray-soft);
color: var(--ink);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
font-size: 14px;
line-height: 1.55;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}

body.modal-open {
overflow: hidden;
}

img {
display: block;
max-width: 100%;
height: auto;
}

a {
color: inherit;
text-decoration: none;
}

button,
input,
textarea,
select {
font: inherit;
}

button {
color: inherit;
}

button,
a {
-webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible {
outline:
3px solid
rgba(216, 117, 102, 0.28);
outline-offset: 3px;
}

/* Sidebar */

.sidebar {
position: fixed;
top: 0;
left: 0;
bottom: 0;
z-index: 20;
width: var(--sidebar);
padding: 16px 20px;
border-right: 1px solid #E7D4CD;
background: #F7E5E0;
display: flex;
flex-direction: column;
justify-content: flex-start;
}

.profile-photo {
height: 190px;
margin: 0 0 12px;
overflow: hidden;
border: 4px solid var(--paper);
border-radius: 22px;
background: var(--accent-soft);
box-shadow: 0 13px 28px rgba(216, 117, 102, 0.12);
}

.profile-photo img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 35%;
}

.profile-identity {
margin-bottom: 22px;
padding: 14px 14px 13px;
border: 1px solid rgba(216, 117, 102, 0.14);
border-radius: 14px;
background: var(--paper);
text-align: center;
}

.name {
color: var(--ink);
font-size: 22px;
font-weight: 850;
line-height: 1.1;
letter-spacing: -0.04em;
}

.profile-role {
width: fit-content;
margin: 9px auto 0;
padding: 5px 9px;
border-radius: 20px;
background: #fdf6f2;
color: var(--accent);
font-size: 9px;
font-weight: 850;
line-height: 1.2;
letter-spacing: 0.09em;
text-transform: uppercase;
}

/* Navigation */

.side-nav {
display: grid;
gap: 10px;
}

.side-nav a {
position: relative;
width: 100%;
min-height: 48px;
padding: 11px 14px;
overflow: hidden;
border: 1px solid transparent;
border-radius: 13px;
display: flex;
align-items: center;
gap: 13px;
color: var(--ink);
font-size: 15px;
font-weight: 720;
line-height: 1;
transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, padding-left 0.2s ease;
}

.side-nav a::before {
content: "";
position: absolute;
top: 50%;
left: 0;
width: 4px;
height: 0;
border-radius: 10px;
background: var(--accent);
transform: translateY(-50%);
transition: height 0.2s ease;
}

.side-nav a:hover,
.side-nav a:focus-visible {
padding-left: 19px;
background: var(--accent);
color: #FFFDF9;
transform: translateX(2px);
}

.side-nav a:hover::before,
.side-nav a:focus-visible::before {
height: 27px;
background: #FFFDF9;
}

.side-nav a:hover .nav-icon,
.side-nav a:focus-visible .nav-icon {
color: #FFFDF9;
}

.side-nav a.is-active,
.side-nav a[aria-current="page"] {
padding-left: 19px;
border-color: rgba(216, 117, 102, 0.16);
background: #FFFDF9;
color: var(--accent);
box-shadow: 0 8px 20px rgba(28, 29, 35, 0.05);
transform: none;
}

.side-nav a.is-active::before,
.side-nav a[aria-current="page"]::before {
height: 27px;
background: var(--accent);
}

.side-nav a.is-active .nav-icon,
.side-nav a[aria-current="page"] .nav-icon {
color: var(--accent);
}

.side-nav a.is-active:hover,
.side-nav a[aria-current="page"]:hover,
.side-nav a.is-active:focus-visible,
.side-nav a[aria-current="page"]:focus-visible {
background: var(--accent);
color: #FFFDF9;
transform: translateX(2px);
}

.side-nav a.is-active:hover::before,
.side-nav a[aria-current="page"]:hover::before,
.side-nav a.is-active:focus-visible::before,
.side-nav a[aria-current="page"]:focus-visible::before {
background: #FFFDF9;
}

.side-nav a.is-active:hover .nav-icon,
.side-nav a[aria-current="page"]:hover .nav-icon,
.side-nav a.is-active:focus-visible .nav-icon,
.side-nav a[aria-current="page"]:focus-visible .nav-icon {
color: #FFFDF9;
}

.nav-icon {
width: 23px;
height: 23px;
flex: 0 0 23px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--accent);
}

.nav-icon svg {
width: 20px;
height: 20px;
stroke-linecap: round;
stroke-linejoin: round;
}

/* Social icons */

.sidebar-socials {
width: 100%;
margin-top: auto;
padding-top: 16px;
border-top: 1px solid rgba(216, 117, 102, 0.16);
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 9px;
}

.sidebar-socials::after {
content: "© 2026 Jezzabel Samson";
width: 100%;
margin-top: 3px;
color: var(--muted);
font-size: 10px;
font-weight: 650;
line-height: 1.4;
letter-spacing: 0.02em;
text-align: center;
}

.icon-link {
width: 42px;
height: 42px;
border: 1px solid #E5D2CB;
border-radius: 50%;
background: #FFFDF9;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--accent);
transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.icon-link:hover {
transform: translateY(-2px);
background: var(--accent);
border-color: var(--accent);
color: #FFFDF9;
}

.icon-link svg {
width: 17px;
height: 17px;
stroke-linecap: round;
stroke-linejoin: round;
}

/* Mobile elements */

.mobile-profile-bar,
.mobile-bottom-nav {
display: none;
}

/* Main */

.main {
margin-left: var(--sidebar);
min-height: 100vh;
padding: 16px 24px;
}

.wrapper {
width: 100%;
max-width: 1260px;
margin: auto;
}

/* Desktop alignment */

@media (min-width: 1051px) {
.main {
display: block;
}

.wrapper {
margin: 0 auto;
}
}


/* Tall compact desktop */

@media (min-width: 1051px) and (max-width: 1300px) and (min-height: 900px) {
:root {
--sidebar: 210px;
}

.sidebar {
padding: 20px 16px 14px;
}

.profile-photo {
height: 170px;
margin: 0 0 10px;
}

.profile-identity {
margin-bottom: 15px;
padding: 12px 10px 11px;
}

.name {
font-size: 20px;
}

.profile-role {
margin-top: 7px;
font-size: 8px;
}

.side-nav {
gap: 9px;
}

.side-nav a {
min-height: 45px;
padding: 10px 12px;
gap: 11px;
font-size: 14px;
}

.side-nav a:hover,
.side-nav a:focus-visible {
padding-left: 17px;
}

.main {
padding: 20px;
}

.wrapper {
max-width: 100%;
}

.hero {
min-height: 175px;
padding: 24px 30px;
}

.hero h1 {
max-width: 780px;
font-size: 48px;
}

.hero p {
max-width: 700px;
font-size: 15px;
line-height: 1.55;
}

.everyday-tools {
margin-top: 10px;
padding: 10px 13px;
grid-template-columns: 175px 1fr;
}

.everyday-tool-logo {
height: 44px;
}

.work-cards-section {
margin-top: 12px;
}

.home-grid {
grid-template-rows: 225px 225px;
gap: 11px;
}

.home-card {
padding: 21px 20px 42px;
border-radius: 20px;
}

.home-card h3 {
font-size: 22px;
}

.home-card > p,
.services-home-copy p {
font-size: 14px;
line-height: 1.45;
}

.home-link {
left: 20px;
bottom: 15px;
font-size: 13px;
}

.home-browser {
height: 118px;
}

.home-image-stack {
height: 142px;
}

.automation-card-visual {
right: 18px;
width: 96px;
height: 96px;
}

.automation-card-visual::before {
width: 66px;
height: 66px;
}

.automation-card-visual svg {
width: 41px;
height: 41px;
}

.services-list {
right: 20px;
}

.services-row {
min-height: 40px;
}

.about-home-preview {
right: 18px;
height: 165px;
}
}


/* Common */

.kicker {
color: var(--accent);
font-size: 10px;
font-weight: 900;
letter-spacing: 0.16em;
text-transform: uppercase;
}

.button-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
}

.button {
min-height: 38px;
padding: 0 17px;
border: 1px solid var(--line);
border-radius: 30px;
background: #FFFDF9;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--ink);
font-size: 13px;
font-weight: 800;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.button:hover {
transform: translateY(-2px);
box-shadow: 0 9px 20px rgba(216, 117, 102, 0.16);
}

.button.primary {
border-color: var(--accent);
background: var(--accent);
color: #FFFDF9;
}

/* Hero */

.hero {
position: relative;
min-height: 145px;
padding: 18px 28px;
overflow: hidden;
border: 1px solid #E8E1DC;
border-radius: 22px;
background: radial-gradient( circle at 10% 15%, rgba(216, 117, 102, 0.11), transparent 32% ), radial-gradient( circle at 84% 14%, rgba(241, 199, 191, 0.76), transparent 31% ), radial-gradient( circle at 82% 92%, rgba(245, 247, 248, 0.95), transparent 40% ), #FFFDF9;
display: flex;
flex-direction: column;
justify-content: center;
}

.hero::after {
content: "";
position: absolute;
top: -185px;
right: 65px;
width: 320px;
height: 320px;
border: 23px solid rgba(216, 117, 102, 0.035);
border-radius: 50%;
}

.hero h1 {
position: relative;
z-index: 2;
max-width: 850px;
margin: 4px 0 6px;
color: var(--ink);
font-size: clamp( 31px, 3.5vw, 46px );
line-height: 0.97;
letter-spacing: -0.055em;
}

.hero h1 span {
color: var(--accent);
}

.hero p {
position: relative;
z-index: 2;
max-width: 720px;
margin: 0;
color: var(--muted);
font-size: 14px;
line-height: 1.5;
}

.hero .button-row {
position: relative;
z-index: 4;
}

/* Everyday tools */

.everyday-tools {
margin-top: 8px;
padding: 8px 12px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 17px;
background: linear-gradient(110deg, var(--accent-soft), #FFFDF9 40%, var(--sage-soft) 72%, var(--sky-soft));
display: grid;
grid-template-columns: 170px 1fr;
gap: 13px;
align-items: center;
}

.everyday-tools-heading {
padding: 3px 13px 3px 4px;
border-right: 1px solid #E4D0C9;
}

.everyday-tools-heading span {
display: block;
color: var(--accent);
font-size: 9px;
font-weight: 900;
letter-spacing: 0.14em;
text-transform: uppercase;
}

.everyday-tools-heading strong {
display: block;
margin-top: 2px;
color: var(--ink);
font-size: 15px;
letter-spacing: -0.025em;
}

.tools-marquee {
width: 100%;
overflow: hidden;
}

.tools-marquee-track {
width: max-content;
display: flex;
align-items: center;
gap: 7px;
animation: toolsScroll 28s linear infinite;
}

@media (hover: hover) and (pointer: fine) {
.tools-marquee:hover .tools-marquee-track {
animation-play-state: paused;
}
}

@keyframes toolsScroll {
from {
transform: translateX(0);
}

to {
transform: translateX(-50%);
}
}

.everyday-tool-logo {
width: 105px;
height: 40px;
flex: 0 0 105px;
padding: 7px 10px;
border: 1px solid var(--line);
border-radius: 10px;
background: #FFFDF9;
display: flex;
align-items: center;
justify-content: center;
}

.everyday-tool-logo img {
max-width: 80px;
max-height: 24px;
width: auto;
height: auto;
object-fit: contain;
}

/* Work cards */

.work-cards-section {
margin-top: 10px;
}

/* Home grid */

.home-grid {
display: grid;
grid-template-columns: repeat( 12, minmax(0, 1fr) );
grid-template-rows: 195px 195px;
gap: 9px;
}

.home-card {
position: relative;
min-width: 0;
padding: 18px 18px 38px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 18px;
background: var(--paper);
display: flex;
flex-direction: column;
justify-content: center;
text-align: left;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-card:hover {
transform: translateY(-3px);
border-color: rgba( 255, 49, 91, 0.28 );
box-shadow: var(--shadow);
}

.home-card-number {
display: block;
margin-bottom: 6px;
color: var(--accent);
font-size: 9px;
font-weight: 900;
letter-spacing: 0.12em;
}

.home-card h3 {
position: relative;
z-index: 5;
margin: 0;
color: var(--ink);
font-size: 20px;
line-height: 1.08;
letter-spacing: -0.035em;
}

.home-card > p,
.services-home-copy p {
position: relative;
z-index: 5;
max-width: 250px;
margin: 7px 0 0;
color: var(--muted);
font-size: 14px;
line-height: 1.35;
}

.home-link {
position: absolute;
left: 18px;
bottom: 13px;
z-index: 7;
color: var(--accent);
font-size: 12px;
font-weight: 850;
}

/* Grid sizes */

.wordpress-home {
grid-column: span 5;
}

.ghl-home {
grid-column: span 4;
}

.automation-home {
grid-column: span 3;
}

.services-home {
grid-column: span 7;
}

.about-home {
grid-column: span 5;
}

/* WordPress card */

.wordpress-home {
background: radial-gradient( circle at 10% 15%, rgba(216, 117, 102, 0.11), transparent 32% ), radial-gradient( circle at 84% 14%, rgba(241, 199, 191, 0.76), transparent 31% ), radial-gradient( circle at 82% 92%, rgba(245, 247, 248, 0.95), transparent 40% ), #FFFDF9;
}

.wordpress-home h3,
.wordpress-home > p {
width: 49%;
}

.home-website-stack {
position: absolute;
top: 50%;
right: 12px;
width: 46%;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 5px;
transform: translateY(-50%);
}

.home-browser {
height: 104px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 8px;
background: #FFFDF9;
box-shadow: 0 5px 12px rgba( 26, 27, 31, 0.07 );
}

.home-browser img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
}

/* GoHighLevel card */

.ghl-home {
background: radial-gradient( circle at 10% 15%, rgba(216, 117, 102, 0.11), transparent 32% ), radial-gradient( circle at 84% 14%, rgba(241, 199, 191, 0.76), transparent 31% ), radial-gradient( circle at 82% 92%, rgba(245, 247, 248, 0.95), transparent 40% ), #FFFDF9;
}

.ghl-home h3,
.ghl-home > p {
width: 48%;
}

.home-image-stack {
position: absolute;
top: 50%;
right: 12px;
width: 45%;
height: 125px;
transform: translateY(-50%);
}

.home-image-stack img {
position: absolute;
width: 83%;
border: 1px solid var(--line);
border-radius: 8px;
background: #FFFDF9;
box-shadow: 0 7px 16px rgba( 26, 27, 31, 0.08 );
}

.home-image-stack img:first-child {
top: 0;
right: 0;
}

.home-image-stack img:last-child {
left: 0;
bottom: 0;
}

/* Automation card */

.automation-home {
background: linear-gradient(145deg, #78A39A, #71958F);
color: #FFFDF9;
}

.automation-home
.home-card-number {
color: rgba( 255, 255, 255, 0.80 );
}

.automation-home h3 {
color: #FFFDF9;
}

.automation-home > p {
width: 50%;
color: rgba( 255, 255, 255, 0.86 );
}

.automation-home
.home-link {
color: #FFFDF9;
}

.automation-card-visual {
position: absolute;
top: 50%;
right: 16px;
width: 84px;
height: 84px;
border: 1px solid rgba( 255, 255, 255, 0.26 );
border-radius: 24px;
background: rgba( 255, 255, 255, 0.10 );
display: flex;
align-items: center;
justify-content: center;
color: #FFFDF9;
transform: translateY(-50%) rotate(-4deg);
}

.automation-card-visual::before {
content: "";
position: absolute;
width: 58px;
height: 58px;
border: 1px dashed rgba( 255, 255, 255, 0.52 );
border-radius: 50%;
}

.automation-card-visual svg {
position: relative;
z-index: 2;
width: 36px;
height: 36px;
stroke-width: 1.6;
}

/* Services card */

.services-home {
background: radial-gradient( circle at 10% 15%, rgba(216, 117, 102, 0.11), transparent 32% ), radial-gradient( circle at 84% 14%, rgba(241, 199, 191, 0.76), transparent 31% ), radial-gradient( circle at 82% 92%, rgba(245, 247, 248, 0.95), transparent 40% ), #FFFDF9;
}

.services-home-copy {
width: 41%;
display: flex;
flex-direction: column;
justify-content: center;
}

.home-card-icon {
width: 34px;
height: 34px;
margin-bottom: 8px;
border-radius: 9px;
background: var(--accent-soft);
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--accent);
}

.services-list {
position: absolute;
top: 50%;
right: 18px;
width: 53%;
border-top: 1px solid var(--line);
transform: translateY(-50%);
}

.services-row {
min-height: 37px;
padding: 5px 0;
border-bottom: 1px solid var(--line);
display: grid;
grid-template-columns: 27px 1fr auto;
gap: 8px;
align-items: center;
}

.service-list-icon {
width: 24px;
height: 24px;
border: 1px solid #E5CEC6;
border-radius: 7px;
background: var(--accent-soft);
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--accent);
}

.service-list-icon svg {
width: 12px;
height: 12px;
}

.services-row strong {
color: var(--ink);
font-size: 13px;
line-height: 1.2;
}

.services-row
> span:last-child {
color: var(--accent);
font-size: 12px;
font-weight: 850;
}

/* About card */

.about-home {
background: radial-gradient( circle at 10% 15%, rgba(216, 117, 102, 0.11), transparent 32% ), radial-gradient( circle at 84% 14%, rgba(241, 199, 191, 0.76), transparent 31% ), radial-gradient( circle at 82% 92%, rgba(245, 247, 248, 0.95), transparent 40% ), #FFFDF9;
}

.about-home h3,
.about-home > p {
width: 49%;
}

.about-home-preview {
position: absolute;
top: 50%;
right: 16px;
width: 42%;
height: 145px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 13px;
background: var(--accent-soft);
box-shadow: 0 8px 18px rgba( 28, 29, 35, 0.08 );
transform: translateY(-50%);
}

.about-home-preview img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 35%;
}

/* Work filters */

.work-section.is-hidden,
#combinedWorkHeader.is-hidden {
display: none;
}

#ghlWorkSection.is-solo {
margin-top: 0;
padding-top: 0;
border-top: 0;
}

/* Modal */

.modal {
display: none;
position: fixed;
inset: 0;
z-index: 1000;
padding: 18px;
overflow: hidden;
background: rgba( 23, 24, 28, 0.70 );
}

.modal.open {
display: flex;
align-items: center;
justify-content: center;
}

.modal-shell {
width: min( 1080px, 96vw );
max-height: calc( 100vh - 36px );
margin: 0;
overflow-y: auto;
overflow-x: hidden;
border-radius: 23px;
background: var(--gray-soft);
box-shadow: var(--shadow-large);
overscroll-behavior: contain;
scrollbar-width: thin;
}

.modal-shell.wide {
width: min( 1180px, 96vw );
}

.modal-top {
position: sticky;
top: 0;
z-index: 40;
padding: 12px 17px;
border-bottom: 1px solid var(--line);
background: rgba( 255, 255, 255, 0.98 );
display: flex;
align-items: center;
justify-content: space-between;
}

.modal-top strong {
color: var(--ink);
font-size: 14px;
}

.modal-close {
width: 38px;
height: 38px;
padding: 0;
border: 0;
border-radius: 50%;
background: var(--accent);
color: #FFFDF9;
font-size: 21px;
line-height: 1;
cursor: pointer;
transition: background 0.2s ease, transform 0.2s ease;
}

.modal-close:hover {
background: var(--accent-dark);
transform: rotate(4deg);
}

.modal-content {
padding: 30px 27px;
}

/* Work popup */

.work-modal-header {
margin-bottom: 28px;
}

.work-modal-header h2 {
margin: 6px 0 9px;
color: var(--ink);
font-size: clamp( 38px, 5vw, 56px );
line-height: 0.96;
letter-spacing: -0.05em;
}

.work-modal-header p {
max-width: 680px;
margin: 0;
color: var(--muted);
font-size: 14px;
line-height: 1.6;
}

.work-section
+
.work-section {
margin-top: 40px;
padding-top: 32px;
border-top: 1px solid var(--line);
}

.work-section-heading {
margin-bottom: 16px;
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 20px;
}

.work-section-heading h3 {
margin: 5px 0 0;
color: var(--ink);
font-size: 27px;
line-height: 1;
letter-spacing: -0.04em;
}

.share-note {
padding: 7px 11px;
border: 1px solid #E7D4CD;
border-radius: 20px;
background: var(--accent-soft);
color: var(--accent-dark);
font-size: 12px;
font-weight: 700;
}

/* Website work */

.website-display-grid {
display: grid;
grid-template-columns: repeat( 3, minmax(0, 1fr) );
gap: 12px;
align-items: start;
}

.website-display-card {
align-self: start;
padding: 8px;
border: 1px solid var(--line);
border-radius: 14px;
background: #FFFDF9;
}

.website-display-image {
width: 100%;
height: auto;
overflow: hidden;
border: 1px solid #EAE6E3;
border-radius: 9px;
background: #F4F1EE;
}

.website-display-image img {
width: 100%;
height: auto;
object-fit: contain;
}

.website-display-info {
padding: 11px 4px 5px;
}

.website-display-info strong {
display: block;
color: var(--ink);
font-size: 15px;
}

.website-display-info span {
display: block;
margin-top: 3px;
color: var(--muted);
font-size: 14px;
line-height: 1.45;
}

/* GoHighLevel list */

.ghl-list {
display: grid;
gap: 10px;
}

.ghl-project {
width: 100%;
padding: 10px;
border: 1px solid var(--line);
border-radius: 15px;
background: #FFFDF9;
display: grid;
grid-template-columns: 135px 1fr auto;
gap: 15px;
align-items: center;
text-align: left;
cursor: pointer;
transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.ghl-project:hover {
border-color: #D8A79B;
background: var(--accent-soft);
transform: translateX(3px);
}

.ghl-project-image {
height: 88px;
overflow: hidden;
border-radius: 10px;
background: var(--gray-soft);
}

.ghl-project-image img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
}

.project-name {
display: block;
color: var(--ink);
font-size: 15px;
font-weight: 850;
}

.project-category {
display: block;
margin-top: 4px;
color: var(--muted);
font-size: 14px;
}

.project-arrow {
padding-right: 10px;
color: var(--accent);
font-size: 18px;
font-weight: 900;
}

/* Project details */

.work-main-view.hidden {
display: none;
}

.project-detail {
display: none;
}

.project-detail.active {
display: block;
}

.detail-header {
margin-bottom: 17px;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 20px;
}

.detail-header h3 {
margin: 6px 0 4px;
color: var(--ink);
font-size: 30px;
line-height: 1;
letter-spacing: -0.04em;
}

.detail-header p {
margin: 0;
color: var(--muted);
font-size: 14px;
}

.back-button {
padding: 10px 14px;
border: 1px solid #E0C9C2;
border-radius: 30px;
background: #FFFDF9;
color: var(--accent);
font-size: 13px;
font-weight: 850;
cursor: pointer;
}

.detail-gallery {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
}

.detail-image {
max-height: 500px;
padding: 8px;
overflow-y: auto;
border: 1px solid var(--line);
border-radius: 14px;
background: #FFFDF9;
}

.detail-image img {
width: 100%;
height: auto;
border-radius: 8px;
}

.role-box {
margin-top: 13px;
padding: 18px;
border: 1px solid var(--line);
border-radius: 15px;
background: #FFFDF9;
}

.role-box strong {
color: var(--ink);
font-size: 15px;
}

.role-box p {
margin: 6px 0 0;
color: var(--muted);
font-size: 14px;
line-height: 1.65;
}

/* Automation popup */

.automation-popup-intro {
padding: 34px 28px 28px;
text-align: center;
background: radial-gradient( circle at 16% 12%, rgba(216, 117, 102, 0.10), transparent 34% ), radial-gradient( circle at 86% 15%, rgba(241, 199, 191, 0.72), transparent 34% ), #FFFDF9;
}

.automation-popup-intro h2 {
max-width: 720px;
margin: 9px auto;
color: var(--ink);
font-size: clamp( 34px, 5vw, 50px );
line-height: 0.98;
letter-spacing: -0.05em;
}

.automation-popup-intro > p {
max-width: 700px;
margin: auto;
color: var(--muted);
font-size: 14px;
line-height: 1.6;
}

.automation-tags {
margin-top: 18px;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 8px;
}

.automation-tag {
min-height: 36px;
padding: 0 14px;
border: 1px solid #f2d0d8;
border-radius: 30px;
background: #FFFDF9;
display: inline-flex;
align-items: center;
color: var(--ink);
font-size: 13px;
font-weight: 800;
}

/* Live workflow */

.live-workflow-shell {
margin: 0 24px 25px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 22px;
background: #FFFDF9;
box-shadow: 0 15px 35px rgba(28, 29, 35, 0.07);
}

.live-browser-top {
min-height: 46px;
padding: 0 16px;
border-bottom: 1px solid var(--line);
background: var(--gray-soft);
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
}

.browser-dots {
display: flex;
gap: 6px;
}

.browser-dot {
width: 9px;
height: 9px;
border-radius: 50%;
}

.browser-dot:nth-child(1) {
background: var(--accent);
}

.browser-dot:nth-child(2) {
background: #D8B877;
}

.browser-dot:nth-child(3) {
background: #8FAE9D;
}

.live-browser-title {
color: var(--muted);
font-size: 12px;
font-weight: 800;
}

.workflow-live-status {
justify-self: end;
display: flex;
align-items: center;
gap: 6px;
color: var(--muted);
font-size: 11px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.08em;
}

.workflow-live-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: #739987;
box-shadow: 0 0 0 4px rgba(78, 175, 114, 0.12);
}

.live-workflow {
position: relative;
padding: 30px 38px 35px;
overflow: hidden;
background: radial-gradient( circle at 20px 20px, rgba(216, 117, 102, 0.07) 2px, transparent 2px );
background-size: 32px 32px;
}

.workflow-demo-label {
width: fit-content;
margin: 0 auto 27px;
padding: 7px 12px;
border: 1px solid var(--line);
border-radius: 30px;
background: #FFFDF9;
color: var(--muted);
font-size: 10px;
font-weight: 900;
letter-spacing: 0.11em;
text-transform: uppercase;
}

/* Main workflow */

.workflow-main {
position: relative;
max-width: 780px;
margin: auto;
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}

.workflow-main::before {
content: "";
position: absolute;
top: 35px;
left: 12%;
right: 12%;
z-index: 0;
height: 2px;
background: #DDD9D5;
}

.workflow-progress {
position: absolute;
top: 35px;
left: 12%;
z-index: 1;
width: 0;
height: 2px;
background: var(--accent);
transition: width 0.55s ease;
}

.workflow-step {
position: relative;
z-index: 3;
text-align: center;
transition: opacity 0.3s ease;
}

.workflow-node {
position: relative;
width: 70px;
height: 70px;
margin: 0 auto 10px;
border: 1px solid var(--line);
border-radius: 20px;
background: #FFFDF9;
display: flex;
align-items: center;
justify-content: center;
color: var(--ink);
font-size: 22px;
box-shadow: 0 7px 16px rgba(28, 29, 35, 0.07);
transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.workflow-step.active
.workflow-node {
transform: translateY(-5px) scale(1.05);
border-color: var(--accent);
background: var(--accent-soft);
color: var(--accent);
box-shadow: 0 12px 27px rgba(216, 117, 102, 0.18);
}

.workflow-step.completed
.workflow-node {
border-color: #D9A99D;
background: #FCF7F4;
color: var(--accent);
}

.workflow-step strong {
display: block;
color: var(--ink);
font-size: 13px;
}

.workflow-step small {
display: block;
margin-top: 3px;
color: var(--muted);
font-size: 11px;
line-height: 1.35;
}

.workflow-step.active
.workflow-node::after {
content: "";
position: absolute;
top: 27px;
right: -5px;
width: 9px;
height: 9px;
border: 3px solid #FFFDF9;
border-radius: 50%;
background: var(--accent);
animation: pulseWorkflow 1s infinite;
}

@keyframes pulseWorkflow {
0% {
box-shadow: 0 0 0 0 rgba(216, 117, 102, 0.35);
}

70% {
box-shadow: 0 0 0 11px rgba(255, 49, 91, 0);
}

100% {
box-shadow: 0 0 0 0 rgba(255, 49, 91, 0);
}
}

/* Decision */

.workflow-decision {
position: relative;
width: fit-content;
margin: 31px auto 25px;
padding: 10px 16px;
border: 1px solid #f0ccd5;
border-radius: 13px;
background: var(--accent-soft);
text-align: center;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.workflow-decision::before {
content: "";
position: absolute;
top: -26px;
left: 50%;
width: 1px;
height: 26px;
background: #DDD9D5;
}

.workflow-decision span {
display: block;
color: var(--accent);
font-size: 9px;
font-weight: 900;
letter-spacing: 0.11em;
}

.workflow-decision strong {
display: block;
margin-top: 2px;
color: var(--ink);
font-size: 12px;
}

.workflow-decision.active {
transform: scale(1.04);
box-shadow: 0 8px 20px rgba(216, 117, 102, 0.13);
}

/* Branches */

.workflow-branches {
position: relative;
max-width: 690px;
margin: auto;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 15px;
}

.workflow-branches::before {
content: "";
position: absolute;
top: -25px;
left: 16.66%;
right: 16.66%;
height: 25px;
border-top: 1px solid #DDD9D5;
border-left: 1px solid #DDD9D5;
border-right: 1px solid #DDD9D5;
border-radius: 8px 8px 0 0;
}

.workflow-branch {
position: relative;
min-height: 125px;
padding: 15px 10px 13px;
border: 1px solid var(--line);
border-radius: 16px;
background: rgba(255, 255, 255, 0.78);
text-align: center;
opacity: 0.48;
transform: scale(0.96);
transition: opacity 0.35s ease, transform 0.35s ease, border-color 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
}

.workflow-branch::before {
content: "";
position: absolute;
top: -26px;
left: 50%;
width: 1px;
height: 26px;
background: #DDD9D5;
}

.branch-route-label {
display: inline-block;
margin-bottom: 7px;
padding: 4px 7px;
border-radius: 20px;
background: var(--gray-soft);
color: var(--muted);
font-size: 8px;
font-weight: 900;
letter-spacing: 0.09em;
transition: color 0.3s ease, background 0.3s ease;
}

.branch-node {
width: 43px;
height: 43px;
margin: 0 auto 7px;
border: 1px solid var(--line);
border-radius: 13px;
background: #FFFDF9;
display: flex;
align-items: center;
justify-content: center;
color: var(--muted);
font-size: 17px;
font-weight: 850;
transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.workflow-branch strong {
display: block;
color: var(--ink);
font-size: 13px;
}

.workflow-branch small {
display: block;
margin-top: 2px;
color: var(--muted);
font-size: 10px;
}

/* Selected path */

.workflow-branch.active {
opacity: 1;
transform: translateY(-4px) scale(1);
border-color: var(--accent);
background: #FFF9F6;
box-shadow: 0 12px 27px rgba(216, 117, 102, 0.15);
}

.workflow-branch.active::before {
width: 2px;
background: var(--accent);
}

.workflow-branch.active
.branch-route-label {
background: var(--accent);
color: #FFFDF9;
}

.workflow-branch.active
.branch-node {
border-color: var(--accent);
background: var(--accent);
color: #FFFDF9;
transform: scale(1.08);
}

.workflow-branch.completed {
opacity: 0.8;
border-color: #D6A296;
background: #FFF9F6;
}

.workflow-branch.completed
.branch-node {
color: var(--accent);
border-color: #D6A296;
background: var(--accent-soft);
}

/* Route message */

.workflow-route-message {
width: fit-content;
min-height: 32px;
margin: 20px auto;
padding: 7px 12px;
border: 1px solid var(--line);
border-radius: 30px;
background: #FFFDF9;
display: flex;
align-items: center;
gap: 8px;
color: var(--muted);
font-size: 11px;
font-weight: 750;
transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}

.workflow-route-message.is-routing {
border-color: #D9AEA3;
background: var(--accent-soft);
color: var(--accent-dark);
}

.workflow-route-pulse {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--accent);
animation: routePulse 1s infinite;
}

@keyframes routePulse {
0%,
100% {
opacity: 0.35;
transform: scale(0.85);
}

50% {
opacity: 1;
transform: scale(1.15);
}
}

/* Converted */

.workflow-final {
position: relative;
display: flex;
justify-content: center;
padding-top: 18px;
}

.workflow-final::before {
content: "";
position: absolute;
top: -1px;
left: 50%;
width: 1px;
height: 20px;
background: #DDD9D5;
}

.workflow-final-step {
min-width: 220px;
padding: 12px 17px;
border: 1px solid var(--line);
border-radius: 15px;
background: #FFFDF9;
display: flex;
align-items: center;
gap: 11px;
opacity: 0.48;
transform: translateY(3px);
transition: opacity 0.35s ease, transform 0.35s ease, border-color 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
}

.workflow-final-node {
width: 40px;
height: 40px;
flex: 0 0 40px;
border-radius: 12px;
background: var(--gray-soft);
display: flex;
align-items: center;
justify-content: center;
color: var(--muted);
font-size: 17px;
}

.workflow-final-step strong {
display: block;
color: var(--ink);
font-size: 13px;
}

.workflow-final-step small {
display: block;
margin-top: 2px;
color: var(--muted);
font-size: 10px;
}

.workflow-final-step.active {
opacity: 1;
transform: translateY(0) scale(1.03);
border-color: var(--accent);
background: var(--accent);
box-shadow: 0 13px 28px rgba(216, 117, 102, 0.20);
}

.workflow-final-step.active
.workflow-final-node {
background: rgba(255, 255, 255, 0.18);
color: #FFFDF9;
}

.workflow-final-step.active strong,
.workflow-final-step.active small {
color: #FFFDF9;
}

/* Mobile live workflow */

@media (max-width: 800px) {
.live-workflow-shell {
margin: 0 10px 20px;
}

.live-browser-top {
grid-template-columns: auto 1fr auto;
gap: 8px;
}

.live-browser-title {
text-align: center;
}

.live-workflow {
padding: 25px 15px 30px;
}

.workflow-main {
display: grid;
grid-template-columns: 1fr;
gap: 10px;
max-width: 100%;
}

.workflow-main::before {
top: 30px;
bottom: 30px;
left: 30px;
right: auto;
width: 2px;
height: auto;
}

.workflow-progress {
top: 30px;
left: 30px;
width: 2px;
height: 0;
transition: height 0.55s ease;
}

.workflow-step {
min-height: 62px;
display: grid;
grid-template-columns: 61px 1fr;
gap: 12px;
align-items: center;
text-align: left;
}

.workflow-node {
width: 58px;
height: 58px;
margin: 0;
border-radius: 16px;
}

.workflow-step-copy {
text-align: left;
}

.workflow-decision {
margin: 24px auto 27px;
}

.workflow-decision::before {
top: -20px;
height: 20px;
}

.workflow-branches {
grid-template-columns: 1fr;
max-width: 300px;
gap: 9px;
}

.workflow-branches::before {
display: none;
}

.workflow-branch {
min-height: 0;
padding: 12px 14px;
display: grid;
grid-template-columns: auto 44px 1fr;
grid-template-rows: auto auto;
column-gap: 10px;
align-items: center;
text-align: left;
}

.workflow-branch::before {
display: none;
}

.branch-route-label {
grid-column: 1;
grid-row: 1 / 3;
margin: 0;
}

.branch-node {
grid-column: 2;
grid-row: 1 / 3;
width: 42px;
height: 42px;
margin: 0;
}

.workflow-branch strong {
grid-column: 3;
grid-row: 1;
align-self: end;
}

.workflow-branch small {
grid-column: 3;
grid-row: 2;
align-self: start;
}

.workflow-route-message {
margin: 17px auto;
}
}

/* Automation carousel */

.automation-carousel-shell {
margin: 0 24px 25px;
padding: 22px 52px 24px;
border: 1px solid var(--line);
border-radius: 22px;
background: linear-gradient( 145deg, #FFFDF9, var(--accent-soft) );
}

.automation-carousel-heading {
margin-bottom: 17px;
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 20px;
}

.automation-carousel-heading h3 {
margin: 5px 0 0;
color: var(--ink);
font-size: 23px;
line-height: 1.08;
letter-spacing: -0.035em;
}

.automation-carousel-controls {
display: flex;
gap: 6px;
}

.automation-carousel-controls button {
width: 38px;
height: 38px;
padding: 0;
border: 1px solid #f0cbd4;
border-radius: 50%;
background: #FFFDF9;
color: var(--ink);
cursor: pointer;
}

.automation-carousel-controls button:hover {
border-color: var(--accent);
background: var(--accent);
color: #FFFDF9;
}

.automation-carousel {
overflow: hidden;
border: 1px solid var(--line);
border-radius: 17px;
background: #FFFDF9;
}

.automation-track {
display: flex;
transition: transform 0.4s ease;
}

.automation-slide {
flex: 0 0 100%;
min-width: 100%;
padding: 16px;
}

.automation-slide img {
width: 100%;
max-height: 520px;
margin: auto;
object-fit: contain;
border-radius: 10px;
}

.automation-dots {
margin-top: 14px;
display: flex;
justify-content: center;
gap: 6px;
}

.automation-dot {
width: 8px;
height: 8px;
padding: 0;
border: 0;
border-radius: 50%;
background: #D2CFCC;
cursor: pointer;
}

.automation-dot.active {
background: var(--accent);
}

/* Services popup */

.services-live-content {
padding: 24px;
}

/* Live method */

.service-method-shell {
position: relative;
padding: 28px;
border: 1px solid var(--line);
border-radius: 22px;
background: radial-gradient(circle at 10% 0%, var(--accent-soft), transparent 34%), linear-gradient(135deg, #FFFDF9, #FFF9F5);
overflow: hidden;
}

.service-method-layout {
display: grid;
grid-template-columns: 1.05fr 3fr;
gap: 28px;
align-items: stretch;
}

.service-method-intro {
padding: 16px 8px 16px 6px;
display: flex;
flex-direction: column;
justify-content: center;
}

.service-method-intro h2 {
margin: 12px 0 14px;
color: var(--ink);
font-size: clamp(34px, 4vw, 52px);
line-height: 0.96;
letter-spacing: -0.045em;
}

.service-method-intro h2 span {
color: #77777A;
}

.service-method-intro p {
max-width: 280px;
margin: 0;
color: var(--muted);
font-size: 14px;
line-height: 1.65;
}

/* Method cards */

.method-cards {
position: relative;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}

.method-track {
position: absolute;
top: 50px;
left: 15%;
right: 15%;
height: 3px;
border-radius: 10px;
background: var(--accent-mid);
z-index: 0;
overflow: hidden;
}

.method-progress {
width: 0;
height: 100%;
border-radius: inherit;
background: var(--accent);
transition: width 0.65s ease;
}

.method-signal {
position: absolute;
top: 51px;
left: 15%;
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 0 5px var(--accent-soft), 0 0 20px rgba(216, 117, 102, 0.4);
transform: translate(-50%, -50%);
z-index: 3;
opacity: 0;
transition: left 0.65s ease;
}

.method-card {
position: relative;
z-index: 2;
min-height: 280px;
padding: 20px;
border: 1px solid var(--line);
border-radius: 18px;
background: rgba(255, 255, 255, 0.94);
overflow: hidden;
transition: transform 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease, background 0.4s ease;
}

.method-card-number {
position: absolute;
top: -10px;
right: 8px;
font-size: 82px;
line-height: 1;
font-weight: 800;
letter-spacing: -0.07em;
color: #f2f2f4;
transition: color 0.4s ease;
}

.method-icon {
position: relative;
z-index: 2;
width: 44px;
height: 44px;
margin-bottom: 22px;
border: 1px solid var(--accent-mid);
border-radius: 13px;
background: var(--accent-soft);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
transition: background 0.35s ease, color 0.35s ease, transform 0.35s ease;
}

.method-icon svg {
width: 21px;
height: 21px;
stroke-width: 1.8;
}

.method-card h3 {
position: relative;
z-index: 2;
margin: 0 0 10px;
color: var(--ink);
font-size: 22px;
line-height: 1.1;
}

.method-card p {
position: relative;
z-index: 2;
margin: 0;
color: var(--muted);
font-size: 13px;
line-height: 1.6;
}

.method-tags {
position: absolute;
left: 20px;
right: 20px;
bottom: 18px;
display: flex;
gap: 6px;
flex-wrap: wrap;
}

.method-tags span {
padding: 6px 10px;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--gray-soft);
color: var(--ink);
font-size: 10px;
font-weight: 700;
transition: background 0.35s ease, border-color 0.35s ease, color 0.35s ease;
}

/* Active method */

.method-card.is-active {
transform: translateY(-6px);
border-color: var(--accent-mid);
background: linear-gradient(145deg, #FFFDF9, var(--pink-pale));
box-shadow: 0 18px 42px rgba(216, 117, 102, 0.13);
}

.method-card.is-active .method-card-number,
.method-card.is-complete .method-card-number {
color: #F7E4DE;
}

.method-card.is-active .method-icon {
background: var(--accent);
color: #FFFDF9;
transform: scale(1.08);
}

.method-card.is-active .method-tags span {
border-color: var(--accent-mid);
background: var(--accent-soft);
}

.method-card.is-complete {
border-color: var(--accent-mid);
}

/* Services heading */

.services-heading {
margin: 54px 0 24px;
text-align: center;
}

.services-heading-line {
display: flex;
align-items: baseline;
justify-content: center;
gap: 14px;
flex-wrap: wrap;
}

.services-heading h3 {
margin: 0;
color: var(--ink);
font-size: 25px;
line-height: 1.2;
letter-spacing: -0.025em;
}

.services-heading-line span {
color: var(--muted);
font-size: 14px;
}

/* Service offer cards */

.services-offer-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
}

.services-offer-card {
position: relative;
min-height: 355px;
padding: 20px;
border: 1px solid #DEDAD6;
border-radius: 20px;
background: var(--paper);
box-shadow: 0 10px 26px rgba(28, 29, 35, 0.05);
overflow: hidden;
transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.services-offer-card:hover {
transform: translateY(-4px);
border-color: var(--accent-mid);
box-shadow: var(--shadow);
}

.services-offer-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-bottom: 20px;
}

.services-offer-icon {
width: 44px;
height: 44px;
border: 1px solid var(--accent-mid);
border-radius: 13px;
background: var(--accent-soft);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
}

.services-offer-icon svg {
width: 21px;
height: 21px;
stroke-width: 1.8;
}

.services-offer-count {
color: var(--accent);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.08em;
}

.services-offer-card h3 {
margin: 0 0 9px;
color: var(--ink);
font-size: 18px;
line-height: 1.15;
text-transform: uppercase;
}

.services-offer-card > p {
min-height: 42px;
margin: 0 0 15px;
color: var(--muted);
font-size: 13px;
line-height: 1.55;
}

.services-offer-label {
display: inline-flex;
margin-bottom: 18px;
padding: 6px 10px;
border: 1px solid var(--accent-mid);
border-radius: 999px;
background: var(--accent-soft);
color: var(--accent-dark);
font-size: 9px;
font-weight: 800;
letter-spacing: 0.08em;
}

.services-offer-points {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 10px;
}

.services-offer-points li {
position: relative;
padding-left: 23px;
color: var(--ink);
font-size: 12px;
line-height: 1.45;
}

.services-offer-points li::before {
content: "✓";
position: absolute;
left: 0;
top: 0;
color: var(--accent);
font-size: 13px;
font-weight: 800;
}


.services-offer-card:nth-child(2) .services-offer-icon {
border-color: #C9DBD6;
background: var(--sage-soft);
color: var(--sage);
}

.services-offer-card:nth-child(3) .services-offer-icon {
border-color: #D2DEE8;
background: var(--sky-soft);
color: var(--sky);
}

.services-offer-card:nth-child(4) .services-offer-icon {
border-color: #E8DCC2;
background: var(--gold-soft);
color: var(--gold);
}

.services-offer-card:nth-child(2) .services-offer-label {
border-color: #C9DBD6;
background: var(--sage-soft);
color: #668D84;
}

.services-offer-card:nth-child(3) .services-offer-label {
border-color: #D2DEE8;
background: var(--sky-soft);
color: #718EA8;
}

.services-offer-card:nth-child(4) .services-offer-label {
border-color: #E8DCC2;
background: var(--gold-soft);
color: #9B7E49;
}

/* Connection section */

.connection-panel {
position: relative;
margin-top: 28px;
padding: 28px 30px;
border: 1px solid var(--accent-mid);
border-radius: 20px;
background: radial-gradient(circle at 100% 0%, var(--accent-soft), transparent 34%), var(--pink-pale);
overflow: hidden;
}

.connection-layout {
display: grid;
grid-template-columns: 0.8fr 1.7fr;
gap: 40px;
align-items: center;
}

.connection-copy h3 {
margin: 7px 0 9px;
color: var(--ink);
font-size: 25px;
line-height: 1.15;
letter-spacing: -0.03em;
}

.connection-copy p {
max-width: 330px;
margin: 0;
color: var(--muted);
font-size: 13px;
line-height: 1.6;
}

.connection-journey {
position: relative;
padding: 20px 0;
}

.connection-track {
position: absolute;
top: 34px;
left: 7%;
right: 7%;
height: 2px;
background: var(--accent-mid);
overflow: hidden;
}

.connection-progress {
width: 0;
height: 100%;
background: var(--accent);
transition: width 0.75s ease;
}

.connection-items {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: repeat(4, 1fr);
}

.connection-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
opacity: 0.4;
transition: opacity 0.4s ease, transform 0.4s ease;
}

.connection-dot {
width: 28px;
height: 28px;
border: 2px solid var(--accent-mid);
border-radius: 50%;
background: #FFFDF9;
display: flex;
align-items: center;
justify-content: center;
color: var(--muted);
font-size: 9px;
font-weight: 800;
transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}

.connection-item strong {
margin-top: 11px;
font-size: 11px;
}

.connection-item.is-active,
.connection-item.is-complete {
opacity: 1;
}

.connection-item.is-active .connection-dot {
background: var(--accent);
border-color: var(--accent);
color: #FFFDF9;
transform: scale(1.18);
box-shadow: 0 0 0 5px var(--accent-soft);
}

.connection-item.is-complete .connection-dot {
border-color: var(--accent);
color: var(--accent);
}

.connection-message {
margin-top: 22px;
padding-top: 18px;
border-top: 1px solid var(--accent-mid);
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
}

.connection-message p {
margin: 0;
color: var(--muted);
font-size: 12px;
line-height: 1.5;
}

.connection-message strong {
color: var(--ink);
}

.connection-button {
flex: 0 0 auto;
padding: 10px 16px;
border: 0;
border-radius: 999px;
background: var(--ink);
color: #FFFDF9;
font-size: 11px;
font-weight: 700;
cursor: pointer;
transition: transform 0.2s ease, background 0.2s ease;
}

.connection-button:hover {
background: var(--accent);
transform: translateY(-2px);
}

/* About popup */

.about-intro {
padding: 35px 28px 25px;
text-align: center;
background: radial-gradient( circle at 20% 20%, var(--accent-soft), transparent 35% ), radial-gradient( circle at 85% 20%, var(--gray-soft), transparent 34% ), #FFFDF9;
}

.about-intro h2 {
margin: 8px 0 8px;
color: var(--ink);
font-size: clamp( 38px, 5vw, 53px );
line-height: 0.98;
letter-spacing: -0.05em;
}

.about-intro p {
margin: auto;
color: var(--muted);
font-size: 14px;
}

.about-card {
margin: 0 20px 22px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 22px;
background: linear-gradient( 145deg, #FFFDF9, var(--accent-soft) );
display: grid;
grid-template-columns: 1.25fr 0.75fr;
}

.about-copy {
padding: 35px 32px;
}

.about-copy h3 {
max-width: 660px;
margin: 0;
color: var(--ink);
font-size: 28px;
line-height: 1.13;
letter-spacing: -0.04em;
}

.about-copy h3 span {
color: var(--accent);
}

.about-copy > p {
max-width: 660px;
margin: 14px 0 0;
color: var(--muted);
font-size: 14px;
line-height: 1.7;
}

.about-skills {
margin-top: 26px;
border-top: 1px solid var(--line);
}

.about-skill {
padding: 13px 0;
border-bottom: 1px solid var(--line);
display: grid;
grid-template-columns: 38px 1fr;
gap: 10px;
}

.about-skill-number {
color: var(--accent);
font-size: 12px;
font-weight: 900;
}

.about-skill strong {
display: block;
color: var(--ink);
font-size: 15px;
}

.about-skill small {
display: block;
margin-top: 3px;
color: var(--muted);
font-size: 14px;
line-height: 1.45;
}

.about-info {
margin-top: 25px;
display: grid;
grid-template-columns: repeat(3, 1fr);
border: 1px solid var(--line);
border-radius: 15px;
overflow: hidden;
}

.about-info-item {
padding: 14px;
border-right: 1px solid var(--line);
background: rgba( 255, 255, 255, 0.78 );
}

.about-info-item:last-child {
border-right: 0;
}

.about-info-item span {
display: block;
color: var(--accent);
font-size: 10px;
font-weight: 900;
letter-spacing: 0.1em;
}

.about-info-item strong {
display: block;
margin-top: 4px;
color: var(--ink);
font-size: 14px;
}

.about-photo-area {
position: relative;
min-height: 530px;
padding: 30px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient( 160deg, var(--accent-mid), var(--accent-soft), var(--gray-soft) );
}

.about-photo {
width: min( 290px, 100% );
height: 410px;
overflow: hidden;
border-radius: 150px 150px 30px 30px;
background: var(--accent-soft);
box-shadow: 0 22px 50px rgba( 28, 29, 35, 0.12 );
}

.about-photo img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 25%;
}

.about-note {
position: absolute;
left: 18px;
bottom: 50px;
padding: 11px 13px;
border: 1px solid var(--line);
border-radius: 12px;
background: #FFFDF9;
display: flex;
align-items: center;
gap: 9px;
box-shadow: 0 15px 35px rgba( 28, 29, 35, 0.10 );
}

.note-dot {
width: 8px;
height: 8px;
margin-top: 23px;
align-self: flex-start;
border-radius: 50%;
background: var(--accent);
}

.about-note small {
display: block;
color: var(--muted);
font-size: 10px;
font-weight: 850;
letter-spacing: 0.08em;
}

.about-note strong {
display: block;
margin-top: 1px;
color: var(--ink);
font-size: 13px;
}


/* FAQs popup */

.faq-content {
padding: 34px 28px 28px;
}

.faq-heading {
max-width: 760px;
margin: 0 auto 28px;
text-align: center;
}

.faq-heading h2 {
margin: 8px 0 10px;
color: var(--ink);
font-size: clamp(38px, 5vw, 54px);
line-height: 0.98;
letter-spacing: -0.05em;
}

.faq-heading h2 span {
color: var(--accent);
}

.faq-heading p {
max-width: 620px;
margin: 0 auto;
color: var(--muted);
font-size: 14px;
line-height: 1.65;
}

.faq-list {
max-width: 900px;
margin: 0 auto;
border-top: 1px solid var(--line);
}

.faq-item {
border-bottom: 1px solid var(--line);
}

.faq-question {
width: 100%;
min-height: 72px;
padding: 17px 4px;
border: 0;
background: transparent;
display: grid;
grid-template-columns: 50px 1fr 38px;
gap: 14px;
align-items: center;
text-align: left;
cursor: pointer;
}

.faq-number {
color: var(--accent);
font-size: 11px;
font-weight: 900;
letter-spacing: 0.08em;
}

.faq-question-text {
color: var(--ink);
font-size: 18px;
font-weight: 800;
line-height: 1.25;
}

.faq-toggle {
width: 36px;
height: 36px;
border: 1px solid var(--accent-mid);
border-radius: 50%;
background: var(--accent-soft);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.faq-toggle svg {
width: 17px;
height: 17px;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
transition: transform 0.25s ease;
}

.faq-question:hover .faq-toggle {
background: var(--accent);
color: #FFFDF9;
}

.faq-item.is-open .faq-toggle {
background: var(--accent);
color: #FFFDF9;
transform: scale(1.04);
}

.faq-item.is-open .faq-toggle svg {
transform: rotate(180deg);
}

.faq-answer {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.3s ease;
}

.faq-item.is-open .faq-answer {
grid-template-rows: 1fr;
}

.faq-answer-inner {
min-height: 0;
overflow: hidden;
padding: 0 56px 0 68px;
color: var(--muted);
font-size: 14px;
line-height: 1.7;
}

.faq-item.is-open .faq-answer-inner {
padding-bottom: 20px;
}

.faq-cta {
max-width: 900px;
margin: 26px auto 0;
padding: 22px 24px;
border: 1px solid var(--accent-mid);
border-radius: 18px;
background: linear-gradient(145deg, #FFFDF9, var(--accent-soft));
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}

.faq-cta h3 {
margin: 5px 0 5px;
color: var(--ink);
font-size: 23px;
line-height: 1.1;
letter-spacing: -0.03em;
}

.faq-cta p {
margin: 0;
color: var(--muted);
font-size: 13px;
line-height: 1.55;
}

@media (max-width: 800px) {
.faq-content {
padding: 28px 18px 24px;
}

.faq-heading {
margin-bottom: 20px;
}

.faq-heading h2 {
font-size: 38px;
}

.faq-question {
min-height: 66px;
padding: 15px 0;
grid-template-columns: 38px 1fr 34px;
gap: 10px;
}

.faq-question-text {
font-size: 16px;
}

.faq-toggle {
width: 34px;
height: 34px;
}

.faq-answer-inner {
padding-left: 48px;
padding-right: 42px;
font-size: 13px;
}

.faq-cta {
padding: 20px;
display: block;
}

.faq-cta .button {
margin-top: 16px;
}
}


/* Contact popup */

.contact-modal-content {
padding: 30px 24px 24px;
}

.contact-modal-heading {
max-width: 720px;
margin: 0 auto 27px;
text-align: center;
}

.contact-modal-heading h2 {
margin: 8px 0 9px;
color: var(--ink);
font-size: clamp( 38px, 5vw, 54px );
line-height: 0.98;
letter-spacing: -0.05em;
}

.contact-modal-heading p {
max-width: 650px;
margin: auto;
color: var(--muted);
font-size: 14px;
line-height: 1.65;
}

.contact-layout {
display: grid;
grid-template-columns: 0.72fr 1.28fr;
gap: 13px;
padding: 15px;
}

.contact-next {
min-height: 600px;
padding: 27px;
border-radius: 18px;
background: var(--contact-pink);
color: var(--ink);
display: flex;
flex-direction: column;
}

.contact-next .kicker {
color: var(--accent-dark);
}

.contact-next h3 {
max-width: 320px;
margin: 9px 0 27px;
color: var(--ink);
font-size: 31px;
line-height: 1;
letter-spacing: -0.04em;
}

.contact-step {
padding: 16px 0;
border-top: 1px solid rgba( 229, 35, 76, 0.14 );
display: grid;
grid-template-columns: 31px 1fr;
gap: 11px;
}

.contact-step-number {
color: var(--accent-dark);
font-size: 12px;
font-weight: 900;
}

.contact-step strong {
display: block;
color: var(--ink);
font-size: 15px;
}

.contact-step p {
margin: 4px 0 0;
color: var(--muted);
font-size: 14px;
line-height: 1.55;
}

.contact-social-row {
margin-top: auto;
padding-top: 22px;
display: flex;
gap: 8px;
}

.contact-social-row
.icon-link {
border-color: rgba( 229, 35, 76, 0.18 );
background: #FFFDF9;
color: var(--accent);
}

.contact-social-row
.icon-link:hover {
border-color: var(--accent);
background: var(--accent);
color: #FFFDF9;
}

/* Contact form */

.contact-form-wrap {
position: relative;
min-height: 600px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 18px;
background: #FFFDF9;
}

.contact-form-loader {
position: absolute;
inset: 0;
z-index: 2;
min-height: 600px;
padding: 30px;
background: linear-gradient( 145deg, #FFFDF9, var(--accent-soft) );
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
color: var(--muted);
font-size: 14px;
font-weight: 700;
text-align: center;
transition: opacity 0.25s ease;
}

.contact-form-loader.is-hidden {
opacity: 0;
pointer-events: none;
}

.contact-loader-dot {
width: 28px;
height: 28px;
border: 3px solid #E9DBD5;
border-top-color: var(--accent);
border-radius: 50%;
animation: contactLoader 0.8s linear infinite;
}

@keyframes contactLoader {
to {
transform: rotate(360deg);
}
}

.contact-form-wrap iframe {
display: block !important;
width: 100% !important;
min-height: 1226px !important;
border: 0 !important;
border-radius: 8px !important;
background: #FFFDF9;
}


/* Wide desktop */

@media (min-width: 1500px) {
.wrapper {
max-width: 1500px;
}

.main {
padding-left: 30px;
padding-right: 30px;
}

.hero {
min-height: 165px;
padding: 22px 30px;
}

.hero h1 {
max-width: 900px;
font-size: clamp( 42px, 3vw, 52px );
}

.hero p {
max-width: 780px;
font-size: 15px;
}

.everyday-tools {
grid-template-columns: 185px 1fr;
padding: 10px 14px;
}

.everyday-tool-logo {
height: 44px;
}

.home-grid {
grid-template-rows: 215px 215px;
gap: 11px;
}

.home-card {
padding: 21px 21px 42px;
}

.home-card h3 {
font-size: 22px;
}

.home-card > p,
.services-home-copy p {
font-size: 14px;
line-height: 1.45;
}

.home-link {
left: 21px;
bottom: 15px;
font-size: 13px;
}

.home-browser {
height: 120px;
}

.home-image-stack {
height: 145px;
}

.automation-card-visual {
right: 20px;
width: 96px;
height: 96px;
}

.automation-card-visual::before {
width: 66px;
height: 66px;
}

.automation-card-visual svg {
width: 41px;
height: 41px;
}

.services-list {
right: 21px;
}

.services-row {
min-height: 40px;
}

.about-home-preview {
right: 20px;
height: 165px;
}
}

/* Extra wide desktop */

@media (min-width: 1800px) {
.wrapper {
max-width: 1580px;
}

.main {
padding-left: 34px;
padding-right: 34px;
}

.hero {
min-height: 175px;
padding: 24px 34px;
}

.hero h1 {
max-width: 940px;
font-size: 54px;
}

.hero p {
max-width: 820px;
font-size: 15px;
}

.everyday-tools {
grid-template-columns: 195px 1fr;
padding: 11px 15px;
}

.everyday-tools-heading strong {
font-size: 16px;
}

.everyday-tool-logo {
width: 112px;
height: 46px;
flex-basis: 112px;
}

.home-grid {
grid-template-rows: 225px 225px;
gap: 13px;
}

.home-card {
padding: 23px 23px 44px;
border-radius: 20px;
}

.home-card h3 {
font-size: 23px;
}

.home-link {
left: 23px;
bottom: 16px;
}

.home-browser {
height: 130px;
}

.home-image-stack {
height: 155px;
}

.automation-card-visual {
right: 22px;
width: 104px;
height: 104px;
}

.automation-card-visual::before {
width: 72px;
height: 72px;
}

.automation-card-visual svg {
width: 44px;
height: 44px;
}

.services-list {
right: 23px;
}

.services-row {
min-height: 42px;
}

.about-home-preview {
right: 22px;
height: 178px;
}
}

/* Tablet */

@media (max-width: 1050px) {
.home-grid {
grid-template-columns: repeat( 2, minmax(0, 1fr) );
grid-template-rows: auto;
}

.wordpress-home,
.ghl-home,
.automation-home,
.services-home,
.about-home {
grid-column: auto;
min-height: 260px;
}

/* Services tablet */

.service-method-layout {
grid-template-columns: 1fr;
}

.services-offer-grid {
grid-template-columns: repeat(2, 1fr);
}

.connection-layout {
grid-template-columns: 1fr;
gap: 24px;
}
}

/* Mobile */

@media (max-width: 800px) {
body {
padding-bottom: calc( 155px + env( safe-area-inset-bottom ) );
overflow-x: hidden;
}

.sidebar {
display: none;
}

.main {
margin-left: 0;
min-height: 100vh;
padding: 14px 12px 120px;
}

.wrapper {
width: 100%;
max-width: 100%;
margin: 0 auto;
}

/* Mobile profile */

.mobile-profile-bar {
display: flex;
align-items: center;
gap: 13px;
margin-bottom: 14px;
padding: 5px;
border-radius: 18px;
background: linear-gradient( 90deg, var(--accent-soft), #FFFDF9 );
}

.mobile-profile-photo {
width: 62px;
height: 62px;
flex: 0 0 62px;
overflow: hidden;
border: 4px solid #FFFDF9;
border-radius: 50%;
background: var(--accent-soft);
box-shadow: 0 8px 18px rgba( 255, 49, 91, 0.14 );
}

.mobile-profile-photo img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 35%;
}

.mobile-profile-copy {
min-width: 0;
flex: 1;
}

.mobile-profile-copy strong {
display: block;
color: var(--ink);
font-size: 18px;
line-height: 1.1;
letter-spacing: -0.03em;
}

.mobile-profile-copy span {
display: block;
margin-top: 4px;
overflow: hidden;
color: var(--muted);
font-size: 12px;
white-space: nowrap;
text-overflow: ellipsis;
}

.mobile-profile-email {
width: 43px;
height: 43px;
flex: 0 0 43px;
padding: 0;
border: 0;
border-radius: 50%;
background: var(--accent);
display: flex;
align-items: center;
justify-content: center;
color: #FFFDF9;
box-shadow: 0 8px 18px rgba( 255, 49, 91, 0.25 );
cursor: pointer;
}

.mobile-profile-email svg {
width: 19px;
height: 19px;
}

/* Hero mobile */

.hero {
min-height: 0;
padding: 22px 20px;
border-radius: 22px;
}

.hero::after {
display: none;
}

.hero .kicker {
display: none;
}

.hero h1 {
margin: 0 0 13px;
font-size: clamp( 37px, 11vw, 50px );
line-height: 0.97;
}

.hero p {
max-width: 100%;
font-size: 14px;
line-height: 1.6;
}

.hero .button-row {
display: none;
}

/* Tools mobile */

.everyday-tools {
margin-top: 12px;
padding: 13px;
display: block;
border-radius: 18px;
}

.everyday-tools-heading {
padding: 0 0 11px;
border-right: 0;
border-bottom: 1px solid #E5D1CA;
}

.everyday-tools-heading strong {
font-size: 17px;
}

.tools-marquee {
position: relative;
width: 100%;
margin-top: 11px;
overflow: hidden;
}

.tools-marquee-track {
width: max-content;
display: flex;
align-items: center;
gap: 7px;
animation: toolsScrollMobile 24s linear infinite;
will-change: transform;
}

@keyframes toolsScrollMobile {
from {
transform: translate3d(0, 0, 0);
}

to {
transform: translate3d(-50%, 0, 0);
}
}

.everyday-tool-logo {
width: 105px;
height: 48px;
flex: 0 0 105px;
}

.everyday-tool-logo img {
max-width: 80px;
max-height: 27px;
}

/* Mobile work cards */

.work-cards-section {
margin-top: 14px;
}

.home-grid {
display: flex;
width: calc( 100vw - 12px );
margin-right: -12px;
padding: 0 12px 60px 0;
gap: 12px;
overflow-x: auto;
overflow-y: visible;
scroll-snap-type: x mandatory;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}

.home-grid::-webkit-scrollbar {
display: none;
}

.wordpress-home,
.ghl-home,
.automation-home,
.services-home,
.about-home {
flex: 0 0 84vw;
width: 84vw;
min-height: 0;
height: auto;
scroll-snap-align: start;
}

.home-card {
min-height: 430px;
padding: 24px 20px 54px;
border-radius: 22px;
display: flex;
flex-direction: column;
justify-content: center;
overflow: hidden;
}

.home-card h3 {
width: 100% !important;
max-width: 100% !important;
margin: 0;
font-size: 24px;
line-height: 1.1;
}

.home-card > p,
.services-home-copy p {
width: 100% !important;
max-width: 100% !important;
margin: 9px 0 0;
font-size: 14px;
line-height: 1.5;
}

.home-card-number {
align-self: flex-start;
display: inline-flex;
width: auto;
margin-bottom: 13px;
padding: 8px 12px;
border-radius: 30px;
background: var(--accent);
color: #FFFDF9;
font-size: 10px;
}

.automation-home
.home-card-number {
background: rgba( 255, 255, 255, 0.16 );
color: #FFFDF9;
}

.home-link {
position: absolute;
left: 20px;
bottom: 18px;
display: block;
margin: 0;
padding: 0;
font-size: 13px;
}

/* WordPress mobile */

.home-website-stack {
position: static;
width: 100%;
height: 180px;
margin-top: 22px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 6px;
transform: none;
}

.home-browser {
height: 180px;
}

/* GoHighLevel mobile */

.home-image-stack {
position: relative;
inset: auto;
width: 100%;
height: 185px;
flex: 0 0 185px;
margin-top: 22px;
transform: none;
}

.home-image-stack img {
width: 74%;
}

/* Automation mobile */

.automation-home h3,
.automation-home > p {
width: 100% !important;
}

.automation-card-visual {
position: relative;
inset: auto;
align-self: flex-end;
width: 145px;
height: 145px;
margin: 22px 8px 0 0;
transform: rotate(-4deg);
}

.automation-card-visual::before {
width: 103px;
height: 103px;
}

.automation-card-visual svg {
width: 58px;
height: 58px;
}

/* Services mobile */

.services-home-copy {
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
}

.services-list {
position: static;
width: 100%;
margin-top: 19px;
border-top: 1px solid var(--line);
transform: none;
}

.services-row {
min-height: 41px;
padding: 6px 0;
}

.service-list-icon {
width: 26px;
height: 26px;
}

.service-list-icon svg {
width: 13px;
height: 13px;
}

.services-row strong {
font-size: 13px;
}

/* About mobile */

.about-home h3,
.about-home > p {
width: 100% !important;
}

.about-home-preview {
position: static;
width: 100%;
height: 210px;
margin-top: 20px;
flex: 0 0 210px;
transform: none;
}

.about-home-preview img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 30%;
}

/* Mobile menu */

.mobile-bottom-nav {
position: fixed;
left: 12px;
right: 12px;
bottom: calc( 12px + env( safe-area-inset-bottom ) );
z-index: 1200;
min-height: 72px;
padding: 7px 8px;
border: 1px solid rgba( 255, 255, 255, 0.22 );
border-radius: 22px;
background: #D87566;
box-shadow: 0 16px 45px rgba( 216, 117, 102, 0.25 );
display: grid;
grid-template-columns: repeat(5, 1fr);
align-items: center;
touch-action: manipulation;
}

.mobile-nav-item {
min-width: 0;
padding: 7px 2px;
border: 0;
border-radius: 13px;
background: transparent;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
color: rgba( 255, 255, 255, 0.75 );
font-size: 10px;
font-weight: 760;
cursor: pointer;
touch-action: manipulation;
}

.mobile-nav-item > svg {
width: 20px;
height: 20px;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}

.mobile-nav-item:first-child {
color: #FFFDF9;
}

.mobile-nav-item:active {
color: #FFFDF9;
}

.mobile-contact {
position: relative;
margin-top: -26px;
}

.mobile-contact-icon {
width: 56px;
height: 56px;
margin-bottom: 1px;
border: 5px solid #FFFDF9;
border-radius: 50%;
background: var(--ink);
display: flex;
align-items: center;
justify-content: center;
color: #FFFDF9;
box-shadow: 0 9px 22px rgba( 28, 29, 35, 0.22 );
}

.mobile-contact-icon svg {
width: 24px;
height: 24px;
stroke-width: 1.7;
}

/* Mobile modals */

.modal {
padding: 12px 8px calc( 105px + env( safe-area-inset-bottom ) );
}

.modal.open {
align-items: center;
justify-content: center;
}

.modal-shell,
.modal-shell.wide {
width: 100%;
max-height: calc( 100dvh - 120px - env( safe-area-inset-bottom ) );
border-radius: 20px;
}

.modal-content {
padding: 25px 13px;
}

.work-section-heading {
display: block;
}

.share-note {
display: inline-block;
margin-top: 10px;
}

.website-display-grid,
.detail-gallery {
grid-template-columns: 1fr;
}

.ghl-project {
grid-template-columns: 90px 1fr auto;
}

.detail-header {
display: block;
}

.detail-header
.back-button {
margin-top: 13px;
}

/* Automation mobile */

.automation-popup-intro {
padding: 29px 18px 23px;
}

.live-workflow-shell {
margin: 0 10px 20px;
}

.live-workflow {
min-height: 0;
padding: 25px 20px;
}

.workflow-main {
grid-template-columns: 1fr;
gap: 11px;
}

.workflow-main::before,
.workflow-progress {
top: 28px;
bottom: 28px;
left: 34px;
right: auto;
width: 2px;
height: auto;
}

.workflow-progress {
height: 0;
transition: height 0.7s ease;
}

.workflow-step {
min-height: 67px;
display: grid;
grid-template-columns: 68px 1fr;
gap: 13px;
align-items: center;
text-align: left;
}

.workflow-node {
width: 60px;
height: 60px;
margin: 0;
border-radius: 17px;
}

.workflow-step-copy {
text-align: left;
}

.workflow-step strong,
.workflow-step small {
text-align: left;
}

.workflow-branches {
margin: 35px 0 0;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}

.workflow-branches::before {
left: 15%;
right: 15%;
}

.branch-node {
width: 54px;
height: 54px;
}

.automation-carousel-shell {
margin: 0 10px 20px;
padding: 18px;
}

/* Services popup mobile */

.services-live-content {
padding: 14px;
}

.service-method-shell {
padding: 18px 14px;
}

.service-method-layout {
grid-template-columns: 1fr;
gap: 24px;
}

.service-method-intro {
padding: 0;
}

.service-method-intro h2 {
font-size: 34px;
}

.service-method-intro p {
max-width: 500px;
}

.method-cards {
grid-template-columns: 1fr;
gap: 14px;
}

.method-track {
top: 7%;
bottom: 7%;
left: 21px;
right: auto;
width: 3px;
height: auto;
}

.method-progress {
width: 100%;
height: 0;
transition: height 0.65s ease;
}

.method-signal {
display: none;
}

.method-card {
min-height: 225px;
margin-left: 36px;
}

.method-card.is-active {
transform: translateX(5px);
}

.method-card-number {
font-size: 68px;
}

.services-heading {
margin: 38px 0 20px;
}

.services-heading-line {
display: block;
}

.services-heading-line span {
display: block;
margin-top: 5px;
}

.services-offer-grid {
grid-template-columns: 1fr;
}

.services-offer-card {
min-height: 0;
}

.services-offer-card > p {
min-height: 0;
}

.connection-panel {
padding: 24px 18px;
}

.connection-layout {
grid-template-columns: 1fr;
gap: 28px;
}

.connection-copy h3 {
font-size: 30px;
line-height: 1.05;
}

.connection-copy p {
max-width: 100%;
font-size: 14px;
line-height: 1.6;
}

.connection-journey {
position: relative;
padding: 4px 0 0;
}

.connection-items {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: 1fr;
gap: 0;
}

.connection-track {
position: absolute;
top: 31px;
left: 19px;
right: auto;
bottom: auto;
width: 2px;
height: 186px;
background: var(--accent-mid);
overflow: hidden;
}

.connection-progress {
width: 100%;
height: 0;
background: var(--accent);
transition: height 0.75s ease;
}

.connection-item {
position: relative;
min-height: 62px;
padding: 8px 8px 8px 58px;
display: flex;
flex-direction: row;
align-items: center;
text-align: left;
opacity: 0.45;
transition: opacity 0.4s ease, transform 0.4s ease;
}

.connection-dot {
position: absolute;
top: 50%;
left: 0;
z-index: 3;
width: 40px;
height: 40px;
border: 2px solid var(--accent);
border-radius: 50%;
background: var(--pink-pale);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
font-size: 11px;
font-weight: 800;
transform: translateY(-50%);
transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease, box-shadow 0.4s ease;
}

.connection-item strong {
margin: 0;
color: var(--ink);
font-size: 15px;
line-height: 1.3;
}

.connection-item.is-active {
opacity: 1;
transform: none;
}

.connection-item.is-active .connection-dot {
background: var(--accent);
border-color: var(--accent);
color: #FFFDF9;
transform: translateY(-50%) scale(1.08);
box-shadow: 0 0 0 6px var(--accent-soft);
}

.connection-item.is-complete {
opacity: 1;
transform: none;
}

.connection-item.is-complete .connection-dot {
background: #FFFDF9;
border-color: var(--accent);
color: var(--accent);
transform: translateY(-50%);
}

.connection-message {
margin-top: 28px;
padding-top: 22px;
border-top: 1px solid var(--accent-mid);
display: flex;
align-items: flex-start;
justify-content: flex-start;
flex-direction: column;
gap: 18px;
}

.connection-message p {
margin: 0;
font-size: 13px;
line-height: 1.6;
}

.connection-button {
min-height: 44px;
padding: 0 20px;
}

/* About popup mobile */

.about-intro {
padding: 31px 20px 20px;
}

.about-card {
margin: 0 14px 18px;
grid-template-columns: 1fr;
}

.about-copy {
padding: 29px 20px;
}

.about-photo-area {
min-height: 420px;
padding-top: 0;
}

.about-photo {
width: min( 350px, 90% );
height: 385px;
}

.about-info {
grid-template-columns: 1fr;
}

.about-info-item {
border-right: 0;
border-bottom: 1px solid var(--line);
}

.about-info-item:last-child {
border-bottom: 0;
}

/* Contact mobile */

.contact-modal-content {
padding: 26px 14px;
}

.contact-layout {
grid-template-columns: 1fr;
}

.contact-next {
min-height: 440px;
}

.contact-form-wrap {
min-height: 600px;
}

.contact-form-loader {
min-height: 600px;
}
}

/* Small phones */

@media (max-width: 480px) {
.hero h1 {
font-size: clamp( 36px, 11vw, 47px );
}

.wordpress-home,
.ghl-home,
.automation-home,
.services-home,
.about-home {
flex-basis: 86vw;
width: 86vw;
}

.home-card {
min-height: 420px;
}

.home-website-stack {
height: 168px;
}

.home-browser {
height: 168px;
}

.home-image-stack {
height: 170px;
flex-basis: 170px;
}

.about-home-preview {
height: 195px;
}
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}

*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}

.tools-marquee-track {
animation: toolsScrollMobile 24s linear infinite !important;
}

.tools-marquee {
overflow: hidden;
}

.contact-loader-dot {
animation: none;
}
}

/* Fixed desktop spacing */
@media (min-width: 1051px) {
.sidebar {
padding-top: 50px;
padding-bottom: 50px;
}

.main {
padding-top: 50px;
padding-bottom: 50px;
}
}
/* Desktop viewport */
@media (min-width: 1051px) {
html,
body {
margin: 0;
}

.sidebar {
height: 100vh;
}

.main {
min-height: 100vh;
}
}

/* Tall desktop */
@media (min-width: 1051px) and (min-height: 900px) {
html,
body {
height: 100%;
overflow: hidden;
}

.portfolio-app {
height: 100vh;
overflow: hidden;
}

.sidebar {
padding-top: 50px;
padding-bottom: 50px;
overflow: hidden;
}

.main {
height: 100vh;
min-height: 0;
padding-top: 50px;
padding-bottom: 50px;
overflow: hidden;
}
}

/* Short desktop */
@media (min-width: 1051px) and (max-height: 899px) {
.sidebar {
padding-top: 16px;
padding-bottom: 16px;
}

.main {
padding-top: 16px;
padding-bottom: 16px;
}

.profile-photo {
height: 150px;
margin-bottom: 8px;
}

.profile-identity {
margin-bottom: 14px;
padding-top: 10px;
padding-bottom: 10px;
}

.name {
font-size: 19px;
}

.profile-role {
margin-top: 6px;
}

.side-nav {
gap: 7px;
}

.side-nav a {
min-height: 41px;
padding-top: 8px;
padding-bottom: 8px;
font-size: 14px;
}

.sidebar-socials {
margin-top: auto;
padding-top: 10px;
}

.icon-link {
width: 36px;
height: 36px;
}

.hero {
min-height: 145px;
padding-top: 18px;
padding-bottom: 18px;
}

.hero h1 {
font-size: 40px;
}

.hero p {
font-size: 13px;
}

.button-row {
margin-top: 8px;
}

.button {
min-height: 34px;
}

.everyday-tools {
margin-top: 10px;
padding-top: 9px;
padding-bottom: 9px;
}

.everyday-tool-logo {
height: 38px;
}

.work-cards-section {
margin-top: 10px;
}

.home-grid {
grid-template-rows: 200px 200px;
gap: 10px;
}

.home-card {
padding-top: 16px;
padding-bottom: 36px;
}

.home-card h3 {
font-size: 20px;
}

.home-card > p,
.services-home-copy p {
font-size: 12px;
line-height: 1.4;
}

.home-browser {
height: 110px;
}

.home-image-stack {
height: 130px;
}

.automation-card-visual {
width: 88px;
height: 88px;
}

.automation-card-visual::before {
width: 60px;
height: 60px;
}

.automation-card-visual svg {
width: 37px;
height: 37px;
}

.services-row {
min-height: 36px;
}

.about-home-preview {
height: 150px;
}
}