/* =================================
TAPTAPCARDS — GET YOURS
================================= */

* {
  box-sizing: border-box;
  }

html {
scroll-behavior: smooth;
}

body {
margin: 0;


font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Arial,
    Helvetica,
    sans-serif;

background: #f5f1e8;
color: #19352c;

-webkit-font-smoothing: antialiased;
 

}

a {
color: inherit;
}

/* =================================
HEADER
================================= */

.site-header {
width: 100%;
max-width: 1180px;
margin: 0 auto;

 
padding: 28px 32px;

display: flex;
align-items: center;
justify-content: space-between;
 

}

.site-logo {
text-decoration: none;

 
font-size: 13px;
font-weight: 800;
letter-spacing: 0.12em;
 

}

.back-link {
text-decoration: none;

 
font-size: 13px;
font-weight: 600;

opacity: 0.65;

transition: opacity 0.2s ease;
 

}

.back-link:hover {
opacity: 1;
}

/* =================================
SHARED
================================= */

main {
overflow: hidden;
}

.eyebrow {
margin: 0 0 16px;

 
font-size: 11px;
font-weight: 800;

letter-spacing: 0.14em;
text-transform: uppercase;

opacity: 0.55;
 

}

.section-heading {
max-width: 760px;

 
margin: 0 auto;

padding:
    110px
    32px
    55px;

text-align: center;
 

}

.section-heading h2 {
margin: 0;

 
font-size: clamp(36px, 5vw, 56px);
line-height: 1.05;
letter-spacing: -0.04em;
 

}

.section-heading > p:last-child {
max-width: 590px;

 
margin:
    22px
    auto
    0;

font-size: 17px;
line-height: 1.7;

opacity: 0.68;
 

}

/* =================================
HERO
================================= */

.products-hero {
max-width: 900px;

 
margin: 0 auto;

padding:
    110px
    32px
    90px;

text-align: center;
 

}

.products-hero h1 {
margin: 0;

 
font-size: clamp(52px, 8vw, 94px);
line-height: 0.94;

letter-spacing: -0.065em;

font-weight: 750;
 

}

.hero-text {
max-width: 650px;

 
margin:
    32px
    auto
    0;

font-size: 18px;
line-height: 1.7;

opacity: 0.68;
 

}

/* =================================
MAIN PRODUCT
================================= */

.product-section {
max-width: 1180px;

 
margin: 0 auto;

padding:
    0
    32px
    90px;
 

}

.product-card {
position: relative;

 
display: grid;
grid-template-columns:
    1.1fr
    0.9fr;

gap: 50px;

padding: 58px;

border-radius: 34px;

background: #19352c;
color: #f8f5ec;

box-shadow:
    0 28px 70px rgba(25, 53, 44, 0.18);
 

}

.product-content {
display: flex;
flex-direction: column;
justify-content: center;
}

.product-label {
margin: 0 0 12px;

 
font-size: 10px;
font-weight: 800;

letter-spacing: 0.15em;
text-transform: uppercase;

opacity: 0.52;
 

}

.product-card h2 {
margin: 0;

 
font-size: clamp(42px, 6vw, 64px);
line-height: 1;

letter-spacing: -0.05em;
 

}

.product-description {
max-width: 520px;

 
margin:
    22px
    0
    28px;

font-size: 17px;
line-height: 1.65;

opacity: 0.72;
 

}

.product-features {
display: flex;
flex-direction: column;
gap: 13px;
}

.feature {
display: flex;
align-items: center;
gap: 12px;
}

.feature span {
width: 22px;
height: 22px;

 
display: flex;
align-items: center;
justify-content: center;

border-radius: 50%;

background: #d7e4c4;
color: #19352c;

font-size: 12px;
font-weight: 800;
 

}

.feature p {
margin: 0;

 
font-size: 14px;

opacity: 0.78;
 

}

.product-footer {
margin-top: 38px;

 
padding-top: 26px;

border-top:
    1px solid rgba(255, 255, 255, 0.13);

display: flex;
align-items: center;
justify-content: space-between;

gap: 20px;
 

}

.price-label {
display: block;

 
margin-bottom: 3px;

font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.1em;

opacity: 0.48;
 

}

.price {
font-size: 27px;
font-weight: 750;
}

.product-button {
display: inline-flex;
align-items: center;
justify-content: center;

 
min-height: 52px;

padding:
    14px
    21px;

border-radius: 13px;

background: #d7e4c4;
color: #19352c;

text-decoration: none;

font-size: 13px;
font-weight: 750;

transition:
    transform 0.2s ease,
    filter 0.2s ease;
 

}

.product-button:hover {
transform: translateY(-2px);
filter: brightness(1.05);
}

/* =================================
PHYSICAL CARD VISUAL
================================= */

.product-visual {
display: flex;
flex-direction: column;

 
align-items: center;
justify-content: center;
 

}

.physical-card {
position: relative;

 
width: min(100%, 390px);
aspect-ratio: 1.58 / 1;

padding: 28px;

display: flex;
flex-direction: column;

justify-content: space-between;

border-radius: 16px;

background:
    linear-gradient(
        135deg,
        #eee8dc,
        #d7d0c2
    );

color: #26342f;

box-shadow:
    0 28px 45px rgba(0, 0, 0, 0.25);

transform:
    perspective(900px)
    rotateY(-8deg)
    rotateX(4deg);
 

}

.card-brand {
font-size: 9px;
font-weight: 800;
letter-spacing: 0.13em;
}

.card-name {
font-size: clamp(22px, 4vw, 31px);
font-weight: 700;
letter-spacing: -0.03em;
}

.card-footer {
align-self: flex-end;

 
font-size: 8px;
font-weight: 800;
letter-spacing: 0.13em;
 

}

.visual-caption {
margin: 24px 0 0;

 
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;

opacity: 0.45;
 

}

/* =================================
PACKS
================================= */

.pack-grid {
max-width: 1180px;

 
margin: 0 auto;

padding:
    0
    32px
    110px;

display: grid;
grid-template-columns:
    repeat(3, 1fr);

gap: 18px;
 

}

.pack-card {
position: relative;

 
min-height: 390px;

padding: 36px;

display: flex;
flex-direction: column;

border:
    1px solid rgba(25, 53, 44, 0.12);

border-radius: 25px;

background: rgba(255, 255, 255, 0.38);
 

}

.pack-number {
margin-bottom: 55px;

 
font-size: 13px;
font-weight: 800;

opacity: 0.35;
 

}

.pack-card h3 {
margin: 0;

 
font-size: 32px;
letter-spacing: -0.04em;
 

}

.pack-card > p:not(.product-label) {
margin:
15px
0
24px;

 
font-size: 14px;
line-height: 1.65;

opacity: 0.68;
 

}

.pack-price {
margin-top: auto;

 
font-size: 13px;
font-weight: 750;

opacity: 0.65;
 

}

.secondary-button {
display: inline-flex;
align-items: center;
justify-content: center;

 
min-height: 48px;

margin-top: 18px;

padding:
    12px
    18px;

border-radius: 12px;

border:
    1px solid rgba(25, 53, 44, 0.18);

text-decoration: none;

font-size: 13px;
font-weight: 700;

transition:
    background 0.2s ease,
    transform 0.2s ease;
 

}

.secondary-button:hover {
background: #19352c;
color: #f8f5ec;

 
transform: translateY(-2px);
 

}

/* =================================
BENEFIT
================================= */

.benefit-section {
max-width: 1180px;

 
margin: 0 auto;

padding:
    110px
    32px;

display: grid;
grid-template-columns:
    1.15fr
    0.85fr;

gap: 80px;

border-top:
    1px solid rgba(25, 53, 44, 0.12);
 

}

.benefit-heading h2 {
margin: 0;

 
font-size: clamp(40px, 5vw, 66px);
line-height: 1;

letter-spacing: -0.055em;
 

}

.benefit-copy {
align-self: center;

 
font-size: 17px;
line-height: 1.75;

opacity: 0.7;
 

}

.benefit-copy p {
margin: 0 0 20px;
}

/* =================================
STEPS
================================= */

.steps-section {
padding-bottom: 110px;
}

.steps-grid {
max-width: 1180px;

 
margin: 0 auto;

padding:
    0
    32px;

display: grid;
grid-template-columns:
    repeat(3, 1fr);

gap: 18px;
 

}

.step {
padding: 32px;

 
border-radius: 22px;

background: rgba(255, 255, 255, 0.38);
 

}

.step-number {
display: block;

 
margin-bottom: 60px;

font-size: 12px;
font-weight: 800;

opacity: 0.38;
 

}

.step h3 {
margin: 0;

 
font-size: 22px;
letter-spacing: -0.025em;
 

}

.step p {
margin: 12px 0 0;

 
font-size: 14px;
line-height: 1.65;

opacity: 0.65;
 

}

/* =================================
FINAL CTA
================================= */

.final-cta {
margin:
0
32px
80px;

 
padding:
    100px
    30px;

border-radius: 32px;

background: #d7e4c4;

text-align: center;
 

}

.final-cta h2 {
margin: 0;

 
font-size: clamp(40px, 6vw, 70px);
line-height: 1;

letter-spacing: -0.055em;
 

}

.final-cta .product-button {
margin-top: 32px;

 
background: #19352c;
color: #f8f5ec;
 

}

/* =================================
FOOTER
================================= */

.site-footer {
max-width: 1180px;

 
margin: 0 auto;

padding:
    0
    32px
    35px;

display: flex;
align-items: center;
justify-content: space-between;

font-size: 11px;

opacity: 0.5;
 

}

.footer-links {
display: flex;
gap: 20px;
}

.footer-links a {
text-decoration: none;
}

/* =================================
RESPONSIVE
================================= */

@media (max-width: 800px) {

 
.site-header {
    padding:
        22px
        20px;
}

.products-hero {
    padding:
        80px
        22px
        65px;
}

.product-section {
    padding:
        0
        20px
        70px;
}

.product-card {
    grid-template-columns: 1fr;

    padding: 35px 26px;

    gap: 45px;
}

.product-visual {
    order: -1;
}

.physical-card {
    width: min(100%, 340px);
}

.pack-grid,
.steps-grid {
    grid-template-columns: 1fr;

    padding-left: 20px;
    padding-right: 20px;
}

.pack-card {
    min-height: 330px;
}

.benefit-section {
    grid-template-columns: 1fr;

    gap: 35px;

    padding:
        80px
        20px;
}

.section-heading {
    padding:
        80px
        20px
        45px;
}

.final-cta {
    margin-left: 20px;
    margin-right: 20px;

    padding:
        75px
        20px;
}

.site-footer {
    padding-left: 20px;
    padding-right: 20px;

    flex-direction: column;
    gap: 18px;
}
 

}

@media (max-width: 520px) {

 
.products-hero h1 {
    font-size: 51px;
}

.hero-text {
    font-size: 16px;
}

.product-footer {
    align-items: flex-start;
    flex-direction: column;
}

.product-button {
    width: 100%;
}

.physical-card {
    transform:
        perspective(900px)
        rotateY(-5deg)
        rotateX(3deg);
}

.final-cta h2 {
    font-size: 43px;
}
 

}

@media (prefers-reduced-motion: reduce) {

 
html {
    scroll-behavior: auto;
}

.product-button,
.secondary-button,
.back-link {
    transition: none;
}
 

}
/* =================================
PROFILE UPDATES
================================= */

.updates-section {
max-width: 1180px;

 
margin: 0 auto;

padding:
    0
    32px
    90px;
 

}

.updates-content {
padding:
55px
60px;

 
border-radius: 28px;

background: rgba(255, 255, 255, 0.38);

border:
    1px solid rgba(25, 53, 44, 0.10);

display: flex;
align-items: center;
gap: 40px;
 

}

.updates-content .eyebrow {
margin: 0;
flex-shrink: 0;
width: 200px;
}

.updates-content h2 {
margin: 0;

 
font-size: clamp(24px, 3vw, 34px);
line-height: 1;

letter-spacing: -0.04em;
 

}

.updates-content p:not(.eyebrow) {
max-width: 400px;

 
margin: 0;

font-size: 14px;
line-height: 1.65;

opacity: 0.65;
 

}

.updates-price {
margin-left: auto;

 
white-space: nowrap;

font-size: 13px;

opacity: 0.65;
 

}

.updates-price strong {
color: #19352c;

 
font-size: 18px;
 

}

.updates-content .secondary-button {
flex-shrink: 0;
margin: 0;
}

/* Mobile */

@media (max-width: 900px) {

 
.updates-content {
    flex-wrap: wrap;

    padding:
        40px
        30px;
}

.updates-content h2 {
    width: 100%;
}

.updates-content p:not(.eyebrow) {
    max-width: none;
}

.updates-price {
    margin-left: 0;
}
 

}

@media (max-width: 600px) {

 
.updates-section {
    padding:
        0
        20px
        70px;
}

.updates-content {
    align-items: flex-start;
    flex-direction: column;

    gap: 18px;

    padding:
        35px
        24px;
}

.updates-price {
    margin-top: 4px;
}

.updates-content .secondary-button {
    width: 100%;
}
 

}
