/* =================== CALCULATORS LANDING - Page Specific Styles ======================== */


/* ---------- Hero ---------- */
.hero { position: relative; z-index: 2; padding: 80px 200px; max-width: 1860px;  margin: 3rem auto 0;}
.hero h1 { max-width: 20ch;}
.hero .sub { margin-top: 24px; font-size: 18px; color: var(--ink-2); line-height: 1.55; max-width: 62ch; letter-spacing: 0.04em;}

/* ---------- Meta Row ---------- */
.meta-row {
    display: flex; justify-content: space-between; align-items: end; gap: 24px;
    padding: 24px 200px 28px; color: var(--ink-3); font-size: 12px; letter-spacing: .04em;
    border-bottom: 1px solid var(--rule); text-transform: uppercase; max-width: 1860px; margin: 0 auto;
}

.meta-row .col { display: flex; flex-direction: column; gap: 4px;}

.meta-row .col b { color: var(--ink); font-weight: 500; font-size: 13px; letter-spacing: 0.05em; text-transform: none;}

/* ---------- Grid ---------- */
.grid-wrap { position: relative; z-index: 2; padding: 48px 200px 100px;  max-width: 1860px;  margin: 0 auto;}

.tiles {
    display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(260px, auto);
    gap: 1px; background: var(--rule); border-bottom: 1px solid var(--rule);
}

/* ---------- Tile ---------- */
.tile {
    position: relative; background: var(--bg); padding: 52px 56px 48px;
    display: flex; flex-direction: column; justify-content: flex-start;
    gap: 28px; min-height: 340px; overflow: hidden; isolation: isolate;
    transition: color .55s cubic-bezier(.2, .8, .2, 1); text-decoration: none; color: var(--ink);
}

/* Tile spans */
.t1 { grid-column: span 8; grid-row: span 2; padding: 60px 64px 56px; }
.t4 { grid-column: span 4; grid-row: span 2; padding: 56px 60px 52px; }
.t2 { grid-column: span 6; grid-row: span 1; }
.t3 { grid-column: span 6; grid-row: span 1; }
.t5 { grid-column: span 4; grid-row: span 1; }

/* Tile inner structure */
.tile > div:nth-child(2) { display: flex; flex-direction: column; gap: 16px; flex: 1;}

.tile .name { margin-top: 12px; }
.tile .hook { margin-top: 0; }
.tile .cta-row { margin-top: auto; padding-top: 16px; }

/* Tile labels */
.tile .num-lbl {
    font-size: 11px; letter-spacing: .22em; color: var(--accent); font-weight: 500;
    display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
}

.tile .calc-name {
    font-family: 'Neue Montreal', 'Plus Jakarta Sans', sans-serif;
    font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; color: var(--ink); text-transform: none; display: block;
}

.t1 .calc-name { font-size: clamp(48px, 4.6vw, 76px); }
.t4 .calc-name { font-size: clamp(40px, 3.4vw, 56px); }
.tile .calc-name { font-size: clamp(34px, 2.8vw, 44px); }

.tile:hover .calc-name { color: #fff; }

.tile .name {
    font-family: 'Neue Montreal', 'Plus Jakarta Sans', sans-serif; font-weight: 500; letter-spacing: -0.015em; line-height: 1.3;
}

.t1 .name { font-size: 26px; }
.tile .name { font-size: 20px; }

.tile .hook { font-size: 14px; line-height: 1.45; color: var(--ink-2); max-width: 48ch; letter-spacing: 0.05em;}
.t2 .hook, .t3 .hook, .t5 .hook, .t6 .hook { font-size: 13.5px; }
.t6 .hook { max-width: 34ch; }

/* CTA row */
.tile .cta-row { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: auto;}

.tile .cta {
    display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 999px;
    font-size: 14px; font-weight: 500; white-space: nowrap; cursor: pointer; letter-spacing: 0.04em; 
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), background .35s, color .35s, border-color .35s, box-shadow .35s;

}

.tile .cta .arr { display: inline-block; transition: transform .35s cubic-bezier(.2, .8, .2, 1);}
.tile:hover .cta .arr { transform: translateX(4px); }
.tile .meta-foot { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-3);}

/* CTA style: Filled */
body[data-cta-style="filled"] .tile .cta {
    background: var(--grad); color: #fff; border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(26, 26, 26, .08), 0 10px 24px rgba(236, 22, 81, .18);
}

body[data-cta-style="filled"] .tile:hover .cta {
    background: #fff; color: var(--ink); box-shadow: 0 1px 2px rgba(26, 26, 26, .08), 0 10px 24px rgba(255, 255, 255, .16);
}

/* CTA style: Outlined */
body[data-cta-style="outlined"] .tile .cta { background: transparent; color: var(--ink); border: 1px solid var(--rule-2);}

body[data-cta-style="outlined"] .tile:hover .cta { background: #fff; color: var(--ink); border-color: transparent;}

/* CTA style: Minimal */
body[data-cta-style="minimal"] .tile .cta {
    background: transparent; color: var(--ink); border: 0; padding: 8px 0; border-bottom: 1px solid var(--ink); border-radius: 0;
}

body[data-cta-style="minimal"] .tile:hover .cta { color: #fff; border-bottom-color: #fff;}

.tile {
    position: relative; background: #ffffffc2; padding: 52px 56px 48px;
    display: flex; flex-direction: column; justify-content: flex-start;
    gap: 28px; min-height: 340px; overflow: hidden; isolation: isolate;
    transition: color .55s cubic-bezier(.2, .8, .2, 1); text-decoration: none; color: var(--ink);
}

/* ----- Sweep Overlay (gradient hover effect) ----- */
.tile::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: var(--grad); transform: translate(-100%, 100%);
    transition: transform .7s cubic-bezier(.2, .8, .2, 1); will-change: transform;
}

.tile:hover::before { transform: translate(0, 0);}
.tile:hover { color: #fff;}
.tile:hover .num-lbl { color: rgba(255, 255, 255, .85);}
.tile:hover .hook { color: rgba(255, 255, 255, .85);}

/* ----- Ambient glyph in corner ----- */
.tile .glyph {
    position: absolute; right: -30px; bottom: -30px; width: 160px; height: 160px;
    border-radius: 50%; background: var(--grad-soft); opacity: 0;
    transition: opacity .6s; pointer-events: none; filter: blur(20px);
}

.tile:hover .glyph { opacity: 0;}

/* ----- Band Section ----- */
.band {
    padding: 80px 200px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px;
    justify-content: space-between; border-bottom: 1px solid var(--rule); /* max-width: 1860px; */ margin: 0 auto;
}

.band h2 {
    font-family: 'Neue Montreal', 'Plus Jakarta Sans', sans-serif; font-weight: 400;
    font-size: clamp(36px, 3.2vw, 52px); letter-spacing: -0.02em; line-height: 1.05;
}

.band h2 .ital { color: var(--ink); }
.band p { font-size: 16px; line-height: 1.6; color: var(--ink-2); max-width: 60ch;}
.band .pts { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-top: 18px;}

.band .pt .cap { margin-bottom: 6px; }
.band .pt p { font-size: 16px; color: var(--ink-2); line-height: 1.55;}

.disclaimer { padding: 24px 200px 8rem;}

/* ---------- Responsive ---------- */
@media (max-width: 1600px) {
	.hero { padding: 80px 10% 30px;}
	.meta-row {padding-inline:10%;}
	.grid-wrap {padding-inline:10%;} 
	.band {padding-inline:10%;}
}

@media (max-width: 1280px) {

}

@media (max-width: 1100px) {

}

@media (max-width: 900px) {
	.hero { padding-inline: 6%;}
	.meta-row {padding-inline: 6%;  flex-wrap: wrap; font-size: 1rem;}
	.grid-wrap {padding-inline: 6%; padding-bottom: 0px;}
	.band {padding-inline: 6%;}
	
	.tile .name {font-size: 22px;}
	.tile .hook {font-size: 1rem;}
	.tile .cta {font-size: 1rem;}
	
	.band .pts {gap:10px;}
	.band p {max-width: 70ch; letter-spacing: 0.04em;}
	
	.disclaimer { padding-inline: 6%;}

	.meta-row .col b {font-size: 14px; letter-spacing: 0.04em;}


    .tiles { grid-template-columns: 1fr; grid-auto-rows: minmax(220px, auto); }

    .t1, .t2, .t3, .t4, .t5 {  grid-column: span 1; grid-row: span 1; padding: 36px 28px 32px;}

    .tile { padding: 36px 28px 32px; }

    .band { grid-template-columns: 1fr; gap: 36px; }

    .band .pts { grid-template-columns: 1fr; }

}


@media(max-width:480px){
	.hero {padding-bottom: 10px; margin-top: 2rem;}
	.hero .sub {font-size: 1rem;}
	.meta-row .col:nth-child(even){text-align: right;}
	.meta-row{  display: grid;  grid-template-columns: 1fr 1fr; padding-top: 0px;}
	.grid-wrap { padding-top: 10px;}
	.hero .sub {line-height: 1.25;}
	.band p { line-height: 1.35;}
	.tile .calc-name{font-size: 24px;letter-spacing: 0.04em;}
	.tile .name { font-size: 20px;letter-spacing: 0.04em;}
	.tile .cta {padding:6px 20px; font-size: 14px;}
	.tile {gap:0.7rem;}
	.tile .hook {line-height: 1.35;}
	.band {padding-top: 2.5rem; padding-bottom: 0px; gap: 1rem;}
	.band h2 { font-size: 24px; letter-spacing: 0.06em; line-height: 1.1;}
	.cap{text-align: left; font-size: 1rem;}
	.disclaimer { padding-bottom: 14rem; }
	
}

@media (max-width: 360px) {
    .meta-row .col b {font-size: 13px; }
	.tile .name {font-size: 18px; }
	
}

@media(max-width:320px){
	.meta-row .col:nth-child(even){text-align: left !important;}
	.meta-row .col b { font-size: 14px; }
	.meta-row {grid-template-columns: 1fr; }
}