- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
:root {
--brand-primary: #6d2435;
--brand-secondary: #b2946b;
--brand-green: #617f67;
--brand-beige: #f2d7b4;
--brand-light: #f9fafb;
--brand-dark: #282828;
--glass-bg: rgba(255, 255, 255, 0.95);
}
.alzakat .zakat-reveal {
opacity: 1;
transform: translateY(40px);
transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);
}
/* === Page Base === */
.kaffarah-page {
font-family: 'IBM Plex Sans Arabic', sans-serif;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
color: #2d3436;
min-height: 100vh;
}
/* === Hero Section === */
.kaffarah-hero {
position: relative;
height: 450px;
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;
}
.kaffarah-hero-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.3;
transform: scale(1.1);
transition: transform 10s ease-out;
}
.kaffarah-hero:hover .kaffarah-hero-img {
transform: scale(1);
}
.kaffarah-hero-content {
position: relative;
z-index: 10;
text-align: center;
color: white;
padding: 0 1rem;
}
.kaffarah-hero-badge {
display: inline-block;
padding: 0.5rem 1.5rem;
border-radius: 999px;
background: rgba(178, 148, 107, 0.2);
border: 1px solid rgba(178, 148, 107, 0.4);
color: #b2946b;
font-size: 0.875rem;
font-weight: bold;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.kaffarah-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.kaffarah-subtitle {
font-size: 1.25rem;
font-weight: 300;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
/* === Logo === */
.page-logo {
position: absolute;
top: 2rem;
right: 2rem;
z-index: 50;
display: flex;
align-items: center;
gap: 0.75rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 0.75rem 1.5rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.page-logo:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
}
/* === Main Container === */
.main-container {
margin-top: -5rem;
margin-bottom: 5rem;
position: relative;
z-index: 20;
}
/* === Glass Card === */
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 2rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.card-title {
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
margin-bottom: 2rem;
text-align: center;
}
/* === Type Selector === */
.type-selector {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.type-btn {
background: #f9fafb;
border: 2px solid transparent;
border-radius: 1rem;
padding: 1.5rem 1rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.type-btn:hover {
background: #fff;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.type-btn.active {
border-color: #b2946b;
background: #fff;
color: #6d2435;
box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);
}
.type-icon {
font-size: 2rem;
margin-bottom: 0.75rem;
color: #b2bec3;
transition: color 0.3s ease;
}
.type-btn.active .type-icon {
color: #b2946b;
}
.type-label {
font-weight: bold;
font-size: 0.95rem;
}
.type-desc {
font-size: 0.75rem;
color: #94a3b8;
margin-top: 0.25rem;
}
/* === Input Container === */
.input-container {
min-height: 250px;
display: flex;
flex-direction: column;
justify-content: center;
}
.input-form {
animation: fadeIn 0.5s ease-out;
}
.input-header {
text-align: center;
margin-bottom: 1.5rem;
}
.input-title {
font-size: 1.25rem;
font-weight: bold;
color: #1f2937;
}
.input-subtitle {
color: #6b7280;
margin-top: 0.5rem;
}
/* === Input Group === */
.input-group {
background: white;
border-radius: 1.25rem;
padding: 2rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
border: 1px solid #f1f2f6;
margin-bottom: 1.5rem;
}
.input-label {
display: block;
font-weight: bold;
color: #6d2435;
margin-bottom: 1rem;
text-align: center;
}
/* === Custom Number Input === */
.custom-number-input {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
background: #f8fafc;
border-radius: 0.75rem;
padding: 0.5rem;
max-width: 200px;
margin: 1.5rem auto 0;
}
.qty-btn {
width: 40px;
height: 40px;
border-radius: 0.625rem;
background: white;
color: #6d2435;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.qty-btn:hover {
transform: scale(1.1);
background: #6d2435;
color: white;
}
.qty-input {
width: 60px;
text-align: center;
background: transparent;
font-weight: 800;
font-size: 1.5rem;
color: #6d2435;
border: none;
outline: none;
}
/* === Custom Amount Input === */
.custom-amount-input {
max-width: 300px;
margin: 0 auto;
}
.amount-input-wrapper {
position: relative;
background: #f8fafc;
border-radius: 0.75rem;
border: 2px solid #e5e7eb;
transition: all 0.3s ease;
}
.amount-input-wrapper:focus-within {
border-color: #6d2435;
box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);
}
.amount-input {
width: 100%;
background: transparent;
border: none;
outline: none;
padding: 1rem 3rem;
text-align: center;
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
}
.amount-currency {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-weight: bold;
}
/* === Info Text === */
.info-text {
text-align: center;
font-size: 0.875rem;
color: #6b7280;
margin-top: 1rem;
}
.info-icon {
margin-right: 0.25rem;
}
/* === Summary Box === */
.summary-box {
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
color: white;
padding: 2.5rem;
border-radius: 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.summary-box::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);
}
.summary-label {
font-size: 0.875rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 1rem;
}
.total-amount {
font-size: 3.5rem;
font-weight: 900;
margin: 1rem 0;
line-height: 1;
text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.summary-details {
background: rgba(255, 255, 255, 0.1);
border-radius: 0.75rem;
padding: 1.5rem;
margin-bottom: 2rem;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.875rem;
margin-bottom: 0.5rem;
color: rgba(255, 255, 255, 0.8);
}
.summary-divider {
height: 1px;
background: rgba(255, 255, 255, 0.2);
margin: 0.5rem 0;
}
.summary-note {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.6);
text-align: center;
}
/* === Donate Button === */
.donate-btn {
background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
color: white;
font-weight: 800;
padding: 1.25rem;
border-radius: 1rem;
width: 100%;
font-size: 1.1rem;
transition: all 0.3s ease;
margin-top: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
position: relative;
overflow: hidden;
}
.donate-btn:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.donate-btn:active {
transform: translateY(-1px);
}
.donate-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
}
.donate-btn:hover::before {
left: 100%;
}
.donate-text {
font-size: 1rem;
font-weight: bold;
}
.donate-icon {
font-size: 1.5rem;
}
/* === Animations === */
.floating {
animation: float 6s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 0.5s ease-out;
}
.slide-up {
animation: slideUp 0.6s ease-out;
}
/* === Hidden Utility === */
.hidden {
display: none !important;
}
/* === Grid Layout === */
.main-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 2rem;
}
@media (min-width: 1024px) {
.main-grid {
grid-template-columns: 8fr 4fr;
}
}
/* === Responsive === */
@media (max-width: 768px) {
.kaffarah-hero {
height: 350px;
}
.kaffarah-title {
font-size: 2rem;
}
.kaffarah-subtitle {
font-size: 1rem;
}
.main-container {
margin-top: -3rem;
}
.type-selector {
grid-template-columns: repeat(2, 1fr);
}
.total-amount {
font-size: 2.5rem;
}
.page-logo {
top: 1rem;
right: 1rem;
padding: 0.5rem 1rem;
}
}
@media (max-width: 480px) {
.type-selector {
grid-template-columns: 1fr;
}
.kaffarah-hero {
height: 300px;
}
.kaffarah-title {
font-size: 1.75rem;
}
.donate-text {
font-size: 0.9rem;
}
}
Ruhu Arındırmak ve Kalpleri Onarmak
Keffaretler ve Adaklar
Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
:root {
--brand-primary: #6d2435;
--brand-secondary: #b2946b;
--brand-green: #617f67;
--brand-beige: #f2d7b4;
--brand-light: #f9fafb;
--brand-dark: #282828;
--glass-bg: rgba(255, 255, 255, 0.95);
}
.alzakat .zakat-reveal {
opacity: 1;
transform: translateY(40px);
transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);
}
/* === Page Base === */
.kaffarah-page {
font-family: 'IBM Plex Sans Arabic', sans-serif;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
color: #2d3436;
min-height: 100vh;
}
/* === Hero Section === */
.kaffarah-hero {
position: relative;
height: 450px;
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;
}
.kaffarah-hero-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.3;
transform: scale(1.1);
transition: transform 10s ease-out;
}
.kaffarah-hero:hover .kaffarah-hero-img {
transform: scale(1);
}
.kaffarah-hero-content {
position: relative;
z-index: 10;
text-align: center;
color: white;
padding: 0 1rem;
}
.kaffarah-hero-badge {
display: inline-block;
padding: 0.5rem 1.5rem;
border-radius: 999px;
background: rgba(178, 148, 107, 0.2);
border: 1px solid rgba(178, 148, 107, 0.4);
color: #b2946b;
font-size: 0.875rem;
font-weight: bold;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.kaffarah-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.kaffarah-subtitle {
font-size: 1.25rem;
font-weight: 300;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
/* === Logo === */
.page-logo {
position: absolute;
top: 2rem;
right: 2rem;
z-index: 50;
display: flex;
align-items: center;
gap: 0.75rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 0.75rem 1.5rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.page-logo:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
}
/* === Main Container === */
.main-container {
margin-top: -5rem;
margin-bottom: 5rem;
position: relative;
z-index: 20;
}
/* === Glass Card === */
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 2rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.card-title {
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
margin-bottom: 2rem;
text-align: center;
}
/* === Type Selector === */
.type-selector {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.type-btn {
background: #f9fafb;
border: 2px solid transparent;
border-radius: 1rem;
padding: 1.5rem 1rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.type-btn:hover {
background: #fff;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.type-btn.active {
border-color: #b2946b;
background: #fff;
color: #6d2435;
box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);
}
.type-icon {
font-size: 2rem;
margin-bottom: 0.75rem;
color: #b2bec3;
transition: color 0.3s ease;
}
.type-btn.active .type-icon {
color: #b2946b;
}
.type-label {
font-weight: bold;
font-size: 0.95rem;
}
.type-desc {
font-size: 0.75rem;
color: #94a3b8;
margin-top: 0.25rem;
}
/* === Input Container === */
.input-container {
min-height: 250px;
display: flex;
flex-direction: column;
justify-content: center;
}
.input-form {
animation: fadeIn 0.5s ease-out;
}
.input-header {
text-align: center;
margin-bottom: 1.5rem;
}
.input-title {
font-size: 1.25rem;
font-weight: bold;
color: #1f2937;
}
.input-subtitle {
color: #6b7280;
margin-top: 0.5rem;
}
/* === Input Group === */
.input-group {
background: white;
border-radius: 1.25rem;
padding: 2rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
border: 1px solid #f1f2f6;
margin-bottom: 1.5rem;
}
.input-label {
display: block;
font-weight: bold;
color: #6d2435;
margin-bottom: 1rem;
text-align: center;
}
/* === Custom Number Input === */
.custom-number-input {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
background: #f8fafc;
border-radius: 0.75rem;
padding: 0.5rem;
max-width: 200px;
margin: 1.5rem auto 0;
}
.qty-btn {
width: 40px;
height: 40px;
border-radius: 0.625rem;
background: white;
color: #6d2435;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.qty-btn:hover {
transform: scale(1.1);
background: #6d2435;
color: white;
}
.qty-input {
width: 60px;
text-align: center;
background: transparent;
font-weight: 800;
font-size: 1.5rem;
color: #6d2435;
border: none;
outline: none;
}
/* === Custom Amount Input === */
.custom-amount-input {
max-width: 300px;
margin: 0 auto;
}
.amount-input-wrapper {
position: relative;
background: #f8fafc;
border-radius: 0.75rem;
border: 2px solid #e5e7eb;
transition: all 0.3s ease;
}
.amount-input-wrapper:focus-within {
border-color: #6d2435;
box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);
}
.amount-input {
width: 100%;
background: transparent;
border: none;
outline: none;
padding: 1rem 3rem;
text-align: center;
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
}
.amount-currency {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-weight: bold;
}
/* === Info Text === */
.info-text {
text-align: center;
font-size: 0.875rem;
color: #6b7280;
margin-top: 1rem;
}
.info-icon {
margin-right: 0.25rem;
}
/* === Summary Box === */
.summary-box {
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
color: white;
padding: 2.5rem;
border-radius: 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.summary-box::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);
}
.summary-label {
font-size: 0.875rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 1rem;
}
.total-amount {
font-size: 3.5rem;
font-weight: 900;
margin: 1rem 0;
line-height: 1;
text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.summary-details {
background: rgba(255, 255, 255, 0.1);
border-radius: 0.75rem;
padding: 1.5rem;
margin-bottom: 2rem;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.875rem;
margin-bottom: 0.5rem;
color: rgba(255, 255, 255, 0.8);
}
.summary-divider {
height: 1px;
background: rgba(255, 255, 255, 0.2);
margin: 0.5rem 0;
}
.summary-note {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.6);
text-align: center;
}
/* === Donate Button === */
.donate-btn {
background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
color: white;
font-weight: 800;
padding: 1.25rem;
border-radius: 1rem;
width: 100%;
font-size: 1.1rem;
transition: all 0.3s ease;
margin-top: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
position: relative;
overflow: hidden;
}
.donate-btn:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.donate-btn:active {
transform: translateY(-1px);
}
.donate-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
}
.donate-btn:hover::before {
left: 100%;
}
.donate-text {
font-size: 1rem;
font-weight: bold;
}
.donate-icon {
font-size: 1.5rem;
}
/* === Animations === */
.floating {
animation: float 6s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 0.5s ease-out;
}
.slide-up {
animation: slideUp 0.6s ease-out;
}
/* === Hidden Utility === */
.hidden {
display: none !important;
}
/* === Grid Layout === */
.main-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 2rem;
}
@media (min-width: 1024px) {
.main-grid {
grid-template-columns: 8fr 4fr;
}
}
/* === Responsive === */
@media (max-width: 768px) {
.kaffarah-hero {
height: 350px;
}
.kaffarah-title {
font-size: 2rem;
}
.kaffarah-subtitle {
font-size: 1rem;
}
.main-container {
margin-top: -3rem;
}
.type-selector {
grid-template-columns: repeat(2, 1fr);
}
.total-amount {
font-size: 2.5rem;
}
.page-logo {
top: 1rem;
right: 1rem;
padding: 0.5rem 1rem;
}
}
@media (max-width: 480px) {
.type-selector {
grid-template-columns: 1fr;
}
.kaffarah-hero {
height: 300px;
}
.kaffarah-title {
font-size: 1.75rem;
}
.donate-text {
font-size: 0.9rem;
}
}
Ruhu Arındırmak ve Kalpleri Onarmak
Keffaretler ve Adaklar
Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
:root {
--brand-primary: #6d2435;
--brand-secondary: #b2946b;
--brand-green: #617f67;
--brand-beige: #f2d7b4;
--brand-light: #f9fafb;
--brand-dark: #282828;
--glass-bg: rgba(255, 255, 255, 0.95);
}
.alzakat .zakat-reveal {
opacity: 1;
transform: translateY(40px);
transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);
}
/* === Page Base === */
.kaffarah-page {
font-family: 'IBM Plex Sans Arabic', sans-serif;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
color: #2d3436;
min-height: 100vh;
}
/* === Hero Section === */
.kaffarah-hero {
position: relative;
height: 450px;
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;
}
.kaffarah-hero-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.3;
transform: scale(1.1);
transition: transform 10s ease-out;
}
.kaffarah-hero:hover .kaffarah-hero-img {
transform: scale(1);
}
.kaffarah-hero-content {
position: relative;
z-index: 10;
text-align: center;
color: white;
padding: 0 1rem;
}
.kaffarah-hero-badge {
display: inline-block;
padding: 0.5rem 1.5rem;
border-radius: 999px;
background: rgba(178, 148, 107, 0.2);
border: 1px solid rgba(178, 148, 107, 0.4);
color: #b2946b;
font-size: 0.875rem;
font-weight: bold;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.kaffarah-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.kaffarah-subtitle {
font-size: 1.25rem;
font-weight: 300;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
/* === Logo === */
.page-logo {
position: absolute;
top: 2rem;
right: 2rem;
z-index: 50;
display: flex;
align-items: center;
gap: 0.75rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 0.75rem 1.5rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.page-logo:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
}
/* === Main Container === */
.main-container {
margin-top: -5rem;
margin-bottom: 5rem;
position: relative;
z-index: 20;
}
/* === Glass Card === */
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 2rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.card-title {
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
margin-bottom: 2rem;
text-align: center;
}
/* === Type Selector === */
.type-selector {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.type-btn {
background: #f9fafb;
border: 2px solid transparent;
border-radius: 1rem;
padding: 1.5rem 1rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.type-btn:hover {
background: #fff;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.type-btn.active {
border-color: #b2946b;
background: #fff;
color: #6d2435;
box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);
}
.type-icon {
font-size: 2rem;
margin-bottom: 0.75rem;
color: #b2bec3;
transition: color 0.3s ease;
}
.type-btn.active .type-icon {
color: #b2946b;
}
.type-label {
font-weight: bold;
font-size: 0.95rem;
}
.type-desc {
font-size: 0.75rem;
color: #94a3b8;
margin-top: 0.25rem;
}
/* === Input Container === */
.input-container {
min-height: 250px;
display: flex;
flex-direction: column;
justify-content: center;
}
.input-form {
animation: fadeIn 0.5s ease-out;
}
.input-header {
text-align: center;
margin-bottom: 1.5rem;
}
.input-title {
font-size: 1.25rem;
font-weight: bold;
color: #1f2937;
}
.input-subtitle {
color: #6b7280;
margin-top: 0.5rem;
}
/* === Input Group === */
.input-group {
background: white;
border-radius: 1.25rem;
padding: 2rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
border: 1px solid #f1f2f6;
margin-bottom: 1.5rem;
}
.input-label {
display: block;
font-weight: bold;
color: #6d2435;
margin-bottom: 1rem;
text-align: center;
}
/* === Custom Number Input === */
.custom-number-input {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
background: #f8fafc;
border-radius: 0.75rem;
padding: 0.5rem;
max-width: 200px;
margin: 1.5rem auto 0;
}
.qty-btn {
width: 40px;
height: 40px;
border-radius: 0.625rem;
background: white;
color: #6d2435;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.qty-btn:hover {
transform: scale(1.1);
background: #6d2435;
color: white;
}
.qty-input {
width: 60px;
text-align: center;
background: transparent;
font-weight: 800;
font-size: 1.5rem;
color: #6d2435;
border: none;
outline: none;
}
/* === Custom Amount Input === */
.custom-amount-input {
max-width: 300px;
margin: 0 auto;
}
.amount-input-wrapper {
position: relative;
background: #f8fafc;
border-radius: 0.75rem;
border: 2px solid #e5e7eb;
transition: all 0.3s ease;
}
.amount-input-wrapper:focus-within {
border-color: #6d2435;
box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);
}
.amount-input {
width: 100%;
background: transparent;
border: none;
outline: none;
padding: 1rem 3rem;
text-align: center;
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
}
.amount-currency {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-weight: bold;
}
/* === Info Text === */
.info-text {
text-align: center;
font-size: 0.875rem;
color: #6b7280;
margin-top: 1rem;
}
.info-icon {
margin-right: 0.25rem;
}
/* === Summary Box === */
.summary-box {
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
color: white;
padding: 2.5rem;
border-radius: 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.summary-box::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);
}
.summary-label {
font-size: 0.875rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 1rem;
}
.total-amount {
font-size: 3.5rem;
font-weight: 900;
margin: 1rem 0;
line-height: 1;
text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.summary-details {
background: rgba(255, 255, 255, 0.1);
border-radius: 0.75rem;
padding: 1.5rem;
margin-bottom: 2rem;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.875rem;
margin-bottom: 0.5rem;
color: rgba(255, 255, 255, 0.8);
}
.summary-divider {
height: 1px;
background: rgba(255, 255, 255, 0.2);
margin: 0.5rem 0;
}
.summary-note {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.6);
text-align: center;
}
/* === Donate Button === */
.donate-btn {
background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
color: white;
font-weight: 800;
padding: 1.25rem;
border-radius: 1rem;
width: 100%;
font-size: 1.1rem;
transition: all 0.3s ease;
margin-top: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
position: relative;
overflow: hidden;
}
.donate-btn:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.donate-btn:active {
transform: translateY(-1px);
}
.donate-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
}
.donate-btn:hover::before {
left: 100%;
}
.donate-text {
font-size: 1rem;
font-weight: bold;
}
.donate-icon {
font-size: 1.5rem;
}
/* === Animations === */
.floating {
animation: float 6s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 0.5s ease-out;
}
.slide-up {
animation: slideUp 0.6s ease-out;
}
/* === Hidden Utility === */
.hidden {
display: none !important;
}
/* === Grid Layout === */
.main-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 2rem;
}
@media (min-width: 1024px) {
.main-grid {
grid-template-columns: 8fr 4fr;
}
}
/* === Responsive === */
@media (max-width: 768px) {
.kaffarah-hero {
height: 350px;
}
.kaffarah-title {
font-size: 2rem;
}
.kaffarah-subtitle {
font-size: 1rem;
}
.main-container {
margin-top: -3rem;
}
.type-selector {
grid-template-columns: repeat(2, 1fr);
}
.total-amount {
font-size: 2.5rem;
}
.page-logo {
top: 1rem;
right: 1rem;
padding: 0.5rem 1rem;
}
}
@media (max-width: 480px) {
.type-selector {
grid-template-columns: 1fr;
}
.kaffarah-hero {
height: 300px;
}
.kaffarah-title {
font-size: 1.75rem;
}
.donate-text {
font-size: 0.9rem;
}
}
Ruhu Arındırmak ve Kalpleri Onarmak
Keffaretler ve Adaklar
Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
:root {
--brand-primary: #6d2435;
--brand-secondary: #b2946b;
--brand-green: #617f67;
--brand-beige: #f2d7b4;
--brand-light: #f9fafb;
--brand-dark: #282828;
--glass-bg: rgba(255, 255, 255, 0.95);
}
.alzakat .zakat-reveal {
opacity: 1;
transform: translateY(40px);
transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);
}
/* === Page Base === */
.kaffarah-page {
font-family: 'IBM Plex Sans Arabic', sans-serif;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
color: #2d3436;
min-height: 100vh;
}
/* === Hero Section === */
.kaffarah-hero {
position: relative;
height: 450px;
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;
}
.kaffarah-hero-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.3;
transform: scale(1.1);
transition: transform 10s ease-out;
}
.kaffarah-hero:hover .kaffarah-hero-img {
transform: scale(1);
}
.kaffarah-hero-content {
position: relative;
z-index: 10;
text-align: center;
color: white;
padding: 0 1rem;
}
.kaffarah-hero-badge {
display: inline-block;
padding: 0.5rem 1.5rem;
border-radius: 999px;
background: rgba(178, 148, 107, 0.2);
border: 1px solid rgba(178, 148, 107, 0.4);
color: #b2946b;
font-size: 0.875rem;
font-weight: bold;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.kaffarah-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.kaffarah-subtitle {
font-size: 1.25rem;
font-weight: 300;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
/* === Logo === */
.page-logo {
position: absolute;
top: 2rem;
right: 2rem;
z-index: 50;
display: flex;
align-items: center;
gap: 0.75rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 0.75rem 1.5rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.page-logo:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
}
/* === Main Container === */
.main-container {
margin-top: -5rem;
margin-bottom: 5rem;
position: relative;
z-index: 20;
}
/* === Glass Card === */
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 2rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.card-title {
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
margin-bottom: 2rem;
text-align: center;
}
/* === Type Selector === */
.type-selector {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.type-btn {
background: #f9fafb;
border: 2px solid transparent;
border-radius: 1rem;
padding: 1.5rem 1rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.type-btn:hover {
background: #fff;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.type-btn.active {
border-color: #b2946b;
background: #fff;
color: #6d2435;
box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);
}
.type-icon {
font-size: 2rem;
margin-bottom: 0.75rem;
color: #b2bec3;
transition: color 0.3s ease;
}
.type-btn.active .type-icon {
color: #b2946b;
}
.type-label {
font-weight: bold;
font-size: 0.95rem;
}
.type-desc {
font-size: 0.75rem;
color: #94a3b8;
margin-top: 0.25rem;
}
/* === Input Container === */
.input-container {
min-height: 250px;
display: flex;
flex-direction: column;
justify-content: center;
}
.input-form {
animation: fadeIn 0.5s ease-out;
}
.input-header {
text-align: center;
margin-bottom: 1.5rem;
}
.input-title {
font-size: 1.25rem;
font-weight: bold;
color: #1f2937;
}
.input-subtitle {
color: #6b7280;
margin-top: 0.5rem;
}
/* === Input Group === */
.input-group {
background: white;
border-radius: 1.25rem;
padding: 2rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
border: 1px solid #f1f2f6;
margin-bottom: 1.5rem;
}
.input-label {
display: block;
font-weight: bold;
color: #6d2435;
margin-bottom: 1rem;
text-align: center;
}
/* === Custom Number Input === */
.custom-number-input {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
background: #f8fafc;
border-radius: 0.75rem;
padding: 0.5rem;
max-width: 200px;
margin: 1.5rem auto 0;
}
.qty-btn {
width: 40px;
height: 40px;
border-radius: 0.625rem;
background: white;
color: #6d2435;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.qty-btn:hover {
transform: scale(1.1);
background: #6d2435;
color: white;
}
.qty-input {
width: 60px;
text-align: center;
background: transparent;
font-weight: 800;
font-size: 1.5rem;
color: #6d2435;
border: none;
outline: none;
}
/* === Custom Amount Input === */
.custom-amount-input {
max-width: 300px;
margin: 0 auto;
}
.amount-input-wrapper {
position: relative;
background: #f8fafc;
border-radius: 0.75rem;
border: 2px solid #e5e7eb;
transition: all 0.3s ease;
}
.amount-input-wrapper:focus-within {
border-color: #6d2435;
box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);
}
.amount-input {
width: 100%;
background: transparent;
border: none;
outline: none;
padding: 1rem 3rem;
text-align: center;
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
}
.amount-currency {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-weight: bold;
}
/* === Info Text === */
.info-text {
text-align: center;
font-size: 0.875rem;
color: #6b7280;
margin-top: 1rem;
}
.info-icon {
margin-right: 0.25rem;
}
/* === Summary Box === */
.summary-box {
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
color: white;
padding: 2.5rem;
border-radius: 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.summary-box::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);
}
.summary-label {
font-size: 0.875rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 1rem;
}
.total-amount {
font-size: 3.5rem;
font-weight: 900;
margin: 1rem 0;
line-height: 1;
text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.summary-details {
background: rgba(255, 255, 255, 0.1);
border-radius: 0.75rem;
padding: 1.5rem;
margin-bottom: 2rem;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.875rem;
margin-bottom: 0.5rem;
color: rgba(255, 255, 255, 0.8);
}
.summary-divider {
height: 1px;
background: rgba(255, 255, 255, 0.2);
margin: 0.5rem 0;
}
.summary-note {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.6);
text-align: center;
}
/* === Donate Button === */
.donate-btn {
background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
color: white;
font-weight: 800;
padding: 1.25rem;
border-radius: 1rem;
width: 100%;
font-size: 1.1rem;
transition: all 0.3s ease;
margin-top: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
position: relative;
overflow: hidden;
}
.donate-btn:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.donate-btn:active {
transform: translateY(-1px);
}
.donate-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
}
.donate-btn:hover::before {
left: 100%;
}
.donate-text {
font-size: 1rem;
font-weight: bold;
}
.donate-icon {
font-size: 1.5rem;
}
/* === Animations === */
.floating {
animation: float 6s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 0.5s ease-out;
}
.slide-up {
animation: slideUp 0.6s ease-out;
}
/* === Hidden Utility === */
.hidden {
display: none !important;
}
/* === Grid Layout === */
.main-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 2rem;
}
@media (min-width: 1024px) {
.main-grid {
grid-template-columns: 8fr 4fr;
}
}
/* === Responsive === */
@media (max-width: 768px) {
.kaffarah-hero {
height: 350px;
}
.kaffarah-title {
font-size: 2rem;
}
.kaffarah-subtitle {
font-size: 1rem;
}
.main-container {
margin-top: -3rem;
}
.type-selector {
grid-template-columns: repeat(2, 1fr);
}
.total-amount {
font-size: 2.5rem;
}
.page-logo {
top: 1rem;
right: 1rem;
padding: 0.5rem 1rem;
}
}
@media (max-width: 480px) {
.type-selector {
grid-template-columns: 1fr;
}
.kaffarah-hero {
height: 300px;
}
.kaffarah-title {
font-size: 1.75rem;
}
.donate-text {
font-size: 0.9rem;
}
}
Ruhu Arındırmak ve Kalpleri Onarmak
Keffaretler ve Adaklar
Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
Keffaret Türünü Seçin
Yemin Keffareti
10 Fakiri Doyurmak
Oruç Fidyesi
Özür veya hastalık nedeniyle
Oruç Keffareti
Kasıtlı oruç bozma için
Genel Adaklar
Belirlediğiniz Miktar
Yemin Keffareti
Bozduğunuz her yemin için on fakiri doyurmak
Keffaretini ödemek istediğiniz yemin sayısı
Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)
Oruç Fidyesi
Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için
Gün Sayısı
Her gün için bir fakiri doyurma maliyeti: 5$
Büyük Oruç Keffareti
Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için
Orucun bozulduğu gün sayısı
Keffaret: Her gün için 60 fakiri doyurmak (300$)
Genel Adaklar
Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir
Adak Bedeli
$
Toplam Keffaret Bedeli
50 $
Yemin Keffareti (Adet 1)
1 × 50$
Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Keffaret Türünü Seçin
Yemin Keffareti
10 Fakiri Doyurmak
Oruç Fidyesi
Özür veya hastalık nedeniyle
Oruç Keffareti
Kasıtlı oruç bozma için
Genel Adaklar
Belirlediğiniz Miktar
Yemin Keffareti
Bozduğunuz her yemin için on fakiri doyurmak
Keffaretini ödemek istediğiniz yemin sayısı
Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)
Oruç Fidyesi
Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için
Gün Sayısı
Her gün için bir fakiri doyurma maliyeti: 5$
Büyük Oruç Keffareti
Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için
Orucun bozulduğu gün sayısı
Keffaret: Her gün için 60 fakiri doyurmak (300$)
Genel Adaklar
Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir
Adak Bedeli
$
Toplam Keffaret Bedeli
50 $
Yemin Keffareti (Adet 1)
1 × 50$
Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
Keffaret Türünü Seçin
Yemin Keffareti
10 Fakiri Doyurmak
Oruç Fidyesi
Özür veya hastalık nedeniyle
Oruç Keffareti
Kasıtlı oruç bozma için
Genel Adaklar
Belirlediğiniz Miktar
Yemin Keffareti
Bozduğunuz her yemin için on fakiri doyurmak
Keffaretini ödemek istediğiniz yemin sayısı
Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)
Oruç Fidyesi
Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için
Gün Sayısı
Her gün için bir fakiri doyurma maliyeti: 5$
Büyük Oruç Keffareti
Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için
Orucun bozulduğu gün sayısı
Keffaret: Her gün için 60 fakiri doyurmak (300$)
Genel Adaklar
Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir
Adak Bedeli
$
Toplam Keffaret Bedeli
50 $
Yemin Keffareti (Adet 1)
1 × 50$
Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Keffaret Türünü Seçin
Yemin Keffareti
10 Fakiri Doyurmak
Oruç Fidyesi
Özür veya hastalık nedeniyle
Oruç Keffareti
Kasıtlı oruç bozma için
Genel Adaklar
Belirlediğiniz Miktar
Yemin Keffareti
Bozduğunuz her yemin için on fakiri doyurmak
Keffaretini ödemek istediğiniz yemin sayısı
Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)
Oruç Fidyesi
Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için
Gün Sayısı
Her gün için bir fakiri doyurma maliyeti: 5$
Büyük Oruç Keffareti
Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için
Orucun bozulduğu gün sayısı
Keffaret: Her gün için 60 fakiri doyurmak (300$)
Genel Adaklar
Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir
Adak Bedeli
$
Toplam Keffaret Bedeli
50 $
Yemin Keffareti (Adet 1)
1 × 50$
Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
// Config
const COST_PER_MEAL = 5; // $5 per meal
const COSTS = {
yameen: 10 * COST_PER_MEAL, // 10 meals = $50
fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5
sawm: 60 * COST_PER_MEAL // 60 meals = $300
};
let currentType = 'yameen';
// Initialize the page
function initPage() {
selectType('yameen');
attachEventListeners();
}
// Select type function
function selectType(type) {
currentType = type;
// Update UI Toggle
document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-${type}`).classList.add('active');
// Toggle Input Forms
document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));
const inputForm = document.getElementById(`input-${type}`);
inputForm.classList.remove('hidden');
inputForm.classList.add('fade-in');
calculate();
}
// Adjust quantity function
function adjustQty(delta) {
const input = document.getElementById(`qty-${currentType}`);
let val = parseInt(input.value) || 0;
val = Math.max(1, val + delta);
input.value = val;
calculate();
}
// Calculate total function
function calculate() {
let total = 0;
let summaryText = '';
let calcText = '';
if (currentType === 'nazr') {
total = parseFloat(document.getElementById('amount-nazr').value) || 0;
summaryText = 'Para olarak adak';
calcText = `${total.toLocaleString()} $`;
} else {
const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;
const unitCost = COSTS[currentType];
total = qty * unitCost;
// Labels mapping
const labels = {
yameen: 'Yemin Keffareti',
fidya: 'Oruç Fidyesi',
sawm: 'Büyük Oruç Keffareti'
};
summaryText = `${labels[currentType]} (Adet ${qty})`;
calcText = `${qty} × ${unitCost}$`;
}
// Update UI
updateDisplay(total, summaryText, calcText);
}
// Update display function
function updateDisplay(total, summaryText, calcText) {
document.getElementById('total-display').textContent = total.toLocaleString() + ' $';
document.getElementById('summary-label').textContent = summaryText;
document.getElementById('summary-calc').textContent = calcText;
}
// Donate function
function donate() {
const amount = document.getElementById('total-display').textContent;
const summary = document.getElementById('summary-label').textContent;
const calc = document.getElementById('summary-calc').textContent;
if (parseFloat(amount) === 0) {
alert('Lütfen geçerli bir keffaret tutarı belirleyin');
return;
}
const message = `Selamun Aleykum, keffaret ödemek istiyorum:
${summary}
Detaylar: ${calc}
Toplam Tutar: ${amount}
Ödeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;
const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;
window.open(url, '_blank');
}
// Attach event listeners
function attachEventListeners() {
// Add input event listeners for all quantity inputs
['yameen', 'fidya', 'sawm'].forEach(type => {
const input = document.getElementById(`qty-${type}`);
if (input) {
input.addEventListener('input', calculate);
}
});
// Add input event listener for nazr amount
const nazrInput = document.getElementById('amount-nazr');
if (nazrInput) {
nazrInput.addEventListener('input', calculate);
}
// Add keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === 'ArrowUp' || e.key === '+') {
e.preventDefault();
adjustQty(1);
} else if (e.key === 'ArrowDown' || e.key === '-') {
e.preventDefault();
adjustQty(-1);
} else if (e.key === 'Escape') {
resetForm();
}
});
}
// Reset form function
function resetForm() {
selectType('yameen');
document.getElementById('qty-yameen').value = 1;
document.getElementById('amount-nazr').value = '';
calculate();
}
// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Config
const COST_PER_MEAL = 5; // $5 per meal
const COSTS = {
yameen: 10 * COST_PER_MEAL, // 10 meals = $50
fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5
sawm: 60 * COST_PER_MEAL // 60 meals = $300
};
let currentType = 'yameen';
// Initialize the page
function initPage() {
selectType('yameen');
attachEventListeners();
}
// Select type function
function selectType(type) {
currentType = type;
// Update UI Toggle
document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-${type}`).classList.add('active');
// Toggle Input Forms
document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));
const inputForm = document.getElementById(`input-${type}`);
inputForm.classList.remove('hidden');
inputForm.classList.add('fade-in');
calculate();
}
// Adjust quantity function
function adjustQty(delta) {
const input = document.getElementById(`qty-${currentType}`);
let val = parseInt(input.value) || 0;
val = Math.max(1, val + delta);
input.value = val;
calculate();
}
// Calculate total function
function calculate() {
let total = 0;
let summaryText = '';
let calcText = '';
if (currentType === 'nazr') {
total = parseFloat(document.getElementById('amount-nazr').value) || 0;
summaryText = 'Para olarak adak';
calcText = `${total.toLocaleString()} $`;
} else {
const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;
const unitCost = COSTS[currentType];
total = qty * unitCost;
// Labels mapping
const labels = {
yameen: 'Yemin Keffareti',
fidya: 'Oruç Fidyesi',
sawm: 'Büyük Oruç Keffareti'
};
summaryText = `${labels[currentType]} (Adet ${qty})`;
calcText = `${qty} × ${unitCost}$`;
}
// Update UI
updateDisplay(total, summaryText, calcText);
}
// Update display function
function updateDisplay(total, summaryText, calcText) {
document.getElementById('total-display').textContent = total.toLocaleString() + ' $';
document.getElementById('summary-label').textContent = summaryText;
document.getElementById('summary-calc').textContent = calcText;
}
// Donate function
function donate() {
const amount = document.getElementById('total-display').textContent;
const summary = document.getElementById('summary-label').textContent;
const calc = document.getElementById('summary-calc').textContent;
if (parseFloat(amount) === 0) {
alert('Lütfen geçerli bir keffaret tutarı belirleyin');
return;
}
const message = `Selamun Aleykum, keffaret ödemek istiyorum:
${summary}
Detaylar: ${calc}
Toplam Tutar: ${amount}
Ödeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;
const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;
window.open(url, '_blank');
}
// Attach event listeners
function attachEventListeners() {
// Add input event listeners for all quantity inputs
['yameen', 'fidya', 'sawm'].forEach(type => {
const input = document.getElementById(`qty-${type}`);
if (input) {
input.addEventListener('input', calculate);
}
});
// Add input event listener for nazr amount
const nazrInput = document.getElementById('amount-nazr');
if (nazrInput) {
nazrInput.addEventListener('input', calculate);
}
// Add keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === 'ArrowUp' || e.key === '+') {
e.preventDefault();
adjustQty(1);
} else if (e.key === 'ArrowDown' || e.key === '-') {
e.preventDefault();
adjustQty(-1);
} else if (e.key === 'Escape') {
resetForm();
}
});
}
// Reset form function
function resetForm() {
selectType('yameen');
document.getElementById('qty-yameen').value = 1;
document.getElementById('amount-nazr').value = '';
calculate();
}
// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
// Config
const COST_PER_MEAL = 5; // $5 per meal
const COSTS = {
yameen: 10 * COST_PER_MEAL, // 10 meals = $50
fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5
sawm: 60 * COST_PER_MEAL // 60 meals = $300
};
let currentType = 'yameen';
// Initialize the page
function initPage() {
selectType('yameen');
attachEventListeners();
}
// Select type function
function selectType(type) {
currentType = type;
// Update UI Toggle
document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-${type}`).classList.add('active');
// Toggle Input Forms
document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));
const inputForm = document.getElementById(`input-${type}`);
inputForm.classList.remove('hidden');
inputForm.classList.add('fade-in');
calculate();
}
// Adjust quantity function
function adjustQty(delta) {
const input = document.getElementById(`qty-${currentType}`);
let val = parseInt(input.value) || 0;
val = Math.max(1, val + delta);
input.value = val;
calculate();
}
// Calculate total function
function calculate() {
let total = 0;
let summaryText = '';
let calcText = '';
if (currentType === 'nazr') {
total = parseFloat(document.getElementById('amount-nazr').value) || 0;
summaryText = 'Para olarak adak';
calcText = `${total.toLocaleString()} $`;
} else {
const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;
const unitCost = COSTS[currentType];
total = qty * unitCost;
// Labels mapping
const labels = {
yameen: 'Yemin Keffareti',
fidya: 'Oruç Fidyesi',
sawm: 'Büyük Oruç Keffareti'
};
summaryText = `${labels[currentType]} (Adet ${qty})`;
calcText = `${qty} × ${unitCost}$`;
}
// Update UI
updateDisplay(total, summaryText, calcText);
}
// Update display function
function updateDisplay(total, summaryText, calcText) {
document.getElementById('total-display').textContent = total.toLocaleString() + ' $';
document.getElementById('summary-label').textContent = summaryText;
document.getElementById('summary-calc').textContent = calcText;
}
// Donate function
function donate() {
const amount = document.getElementById('total-display').textContent;
const summary = document.getElementById('summary-label').textContent;
const calc = document.getElementById('summary-calc').textContent;
if (parseFloat(amount) === 0) {
alert('Lütfen geçerli bir keffaret tutarı belirleyin');
return;
}
const message = `Selamun Aleykum, keffaret ödemek istiyorum:
${summary}
Detaylar: ${calc}
Toplam Tutar: ${amount}
Ödeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;
const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;
window.open(url, '_blank');
}
// Attach event listeners
function attachEventListeners() {
// Add input event listeners for all quantity inputs
['yameen', 'fidya', 'sawm'].forEach(type => {
const input = document.getElementById(`qty-${type}`);
if (input) {
input.addEventListener('input', calculate);
}
});
// Add input event listener for nazr amount
const nazrInput = document.getElementById('amount-nazr');
if (nazrInput) {
nazrInput.addEventListener('input', calculate);
}
// Add keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === 'ArrowUp' || e.key === '+') {
e.preventDefault();
adjustQty(1);
} else if (e.key === 'ArrowDown' || e.key === '-') {
e.preventDefault();
adjustQty(-1);
} else if (e.key === 'Escape') {
resetForm();
}
});
}
// Reset form function
function resetForm() {
selectType('yameen');
document.getElementById('qty-yameen').value = 1;
document.getElementById('amount-nazr').value = '';
calculate();
}
// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Config
const COST_PER_MEAL = 5; // $5 per meal
const COSTS = {
yameen: 10 * COST_PER_MEAL, // 10 meals = $50
fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5
sawm: 60 * COST_PER_MEAL // 60 meals = $300
};
let currentType = 'yameen';
// Initialize the page
function initPage() {
selectType('yameen');
attachEventListeners();
}
// Select type function
function selectType(type) {
currentType = type;
// Update UI Toggle
document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-${type}`).classList.add('active');
// Toggle Input Forms
document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));
const inputForm = document.getElementById(`input-${type}`);
inputForm.classList.remove('hidden');
inputForm.classList.add('fade-in');
calculate();
}
// Adjust quantity function
function adjustQty(delta) {
const input = document.getElementById(`qty-${currentType}`);
let val = parseInt(input.value) || 0;
val = Math.max(1, val + delta);
input.value = val;
calculate();
}
// Calculate total function
function calculate() {
let total = 0;
let summaryText = '';
let calcText = '';
if (currentType === 'nazr') {
total = parseFloat(document.getElementById('amount-nazr').value) || 0;
summaryText = 'Para olarak adak';
calcText = `${total.toLocaleString()} $`;
} else {
const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;
const unitCost = COSTS[currentType];
total = qty * unitCost;
// Labels mapping
const labels = {
yameen: 'Yemin Keffareti',
fidya: 'Oruç Fidyesi',
sawm: 'Büyük Oruç Keffareti'
};
summaryText = `${labels[currentType]} (Adet ${qty})`;
calcText = `${qty} × ${unitCost}$`;
}
// Update UI
updateDisplay(total, summaryText, calcText);
}
// Update display function
function updateDisplay(total, summaryText, calcText) {
document.getElementById('total-display').textContent = total.toLocaleString() + ' $';
document.getElementById('summary-label').textContent = summaryText;
document.getElementById('summary-calc').textContent = calcText;
}
// Donate function
function donate() {
const amount = document.getElementById('total-display').textContent;
const summary = document.getElementById('summary-label').textContent;
const calc = document.getElementById('summary-calc').textContent;
if (parseFloat(amount) === 0) {
alert('Lütfen geçerli bir keffaret tutarı belirleyin');
return;
}
const message = `Selamun Aleykum, keffaret ödemek istiyorum:
${summary}
Detaylar: ${calc}
Toplam Tutar: ${amount}
Ödeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;
const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;
window.open(url, '_blank');
}
// Attach event listeners
function attachEventListeners() {
// Add input event listeners for all quantity inputs
['yameen', 'fidya', 'sawm'].forEach(type => {
const input = document.getElementById(`qty-${type}`);
if (input) {
input.addEventListener('input', calculate);
}
});
// Add input event listener for nazr amount
const nazrInput = document.getElementById('amount-nazr');
if (nazrInput) {
nazrInput.addEventListener('input', calculate);
}
// Add keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === 'ArrowUp' || e.key === '+') {
e.preventDefault();
adjustQty(1);
} else if (e.key === 'ArrowDown' || e.key === '-') {
e.preventDefault();
adjustQty(-1);
} else if (e.key === 'Escape') {
resetForm();
}
});
}
// Reset form function
function resetForm() {
selectType('yameen');
document.getElementById('qty-yameen').value = 1;
document.getElementById('amount-nazr').value = '';
calculate();
}
// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_row->render_content() (line 317 of themes/gavias_kunco/gva_content_builder/gva_row.php).
element_gva_row->render_content(Array, '
:root {
--brand-primary: #6d2435;
--brand-secondary: #b2946b;
--brand-green: #617f67;
--brand-beige: #f2d7b4;
--brand-light: #f9fafb;
--brand-dark: #282828;
--glass-bg: rgba(255, 255, 255, 0.95);
}
.alzakat .zakat-reveal {
opacity: 1;
transform: translateY(40px);
transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);
}
/* === Page Base === */
.kaffarah-page {
font-family: 'IBM Plex Sans Arabic', sans-serif;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
color: #2d3436;
min-height: 100vh;
}
/* === Hero Section === */
.kaffarah-hero {
position: relative;
height: 450px;
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;
}
.kaffarah-hero-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.3;
transform: scale(1.1);
transition: transform 10s ease-out;
}
.kaffarah-hero:hover .kaffarah-hero-img {
transform: scale(1);
}
.kaffarah-hero-content {
position: relative;
z-index: 10;
text-align: center;
color: white;
padding: 0 1rem;
}
.kaffarah-hero-badge {
display: inline-block;
padding: 0.5rem 1.5rem;
border-radius: 999px;
background: rgba(178, 148, 107, 0.2);
border: 1px solid rgba(178, 148, 107, 0.4);
color: #b2946b;
font-size: 0.875rem;
font-weight: bold;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.kaffarah-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.kaffarah-subtitle {
font-size: 1.25rem;
font-weight: 300;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
/* === Logo === */
.page-logo {
position: absolute;
top: 2rem;
right: 2rem;
z-index: 50;
display: flex;
align-items: center;
gap: 0.75rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 0.75rem 1.5rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.page-logo:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
}
/* === Main Container === */
.main-container {
margin-top: -5rem;
margin-bottom: 5rem;
position: relative;
z-index: 20;
}
/* === Glass Card === */
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 2rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.card-title {
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
margin-bottom: 2rem;
text-align: center;
}
/* === Type Selector === */
.type-selector {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.type-btn {
background: #f9fafb;
border: 2px solid transparent;
border-radius: 1rem;
padding: 1.5rem 1rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.type-btn:hover {
background: #fff;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.type-btn.active {
border-color: #b2946b;
background: #fff;
color: #6d2435;
box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);
}
.type-icon {
font-size: 2rem;
margin-bottom: 0.75rem;
color: #b2bec3;
transition: color 0.3s ease;
}
.type-btn.active .type-icon {
color: #b2946b;
}
.type-label {
font-weight: bold;
font-size: 0.95rem;
}
.type-desc {
font-size: 0.75rem;
color: #94a3b8;
margin-top: 0.25rem;
}
/* === Input Container === */
.input-container {
min-height: 250px;
display: flex;
flex-direction: column;
justify-content: center;
}
.input-form {
animation: fadeIn 0.5s ease-out;
}
.input-header {
text-align: center;
margin-bottom: 1.5rem;
}
.input-title {
font-size: 1.25rem;
font-weight: bold;
color: #1f2937;
}
.input-subtitle {
color: #6b7280;
margin-top: 0.5rem;
}
/* === Input Group === */
.input-group {
background: white;
border-radius: 1.25rem;
padding: 2rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
border: 1px solid #f1f2f6;
margin-bottom: 1.5rem;
}
.input-label {
display: block;
font-weight: bold;
color: #6d2435;
margin-bottom: 1rem;
text-align: center;
}
/* === Custom Number Input === */
.custom-number-input {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
background: #f8fafc;
border-radius: 0.75rem;
padding: 0.5rem;
max-width: 200px;
margin: 1.5rem auto 0;
}
.qty-btn {
width: 40px;
height: 40px;
border-radius: 0.625rem;
background: white;
color: #6d2435;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.qty-btn:hover {
transform: scale(1.1);
background: #6d2435;
color: white;
}
.qty-input {
width: 60px;
text-align: center;
background: transparent;
font-weight: 800;
font-size: 1.5rem;
color: #6d2435;
border: none;
outline: none;
}
/* === Custom Amount Input === */
.custom-amount-input {
max-width: 300px;
margin: 0 auto;
}
.amount-input-wrapper {
position: relative;
background: #f8fafc;
border-radius: 0.75rem;
border: 2px solid #e5e7eb;
transition: all 0.3s ease;
}
.amount-input-wrapper:focus-within {
border-color: #6d2435;
box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);
}
.amount-input {
width: 100%;
background: transparent;
border: none;
outline: none;
padding: 1rem 3rem;
text-align: center;
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
}
.amount-currency {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-weight: bold;
}
/* === Info Text === */
.info-text {
text-align: center;
font-size: 0.875rem;
color: #6b7280;
margin-top: 1rem;
}
.info-icon {
margin-right: 0.25rem;
}
/* === Summary Box === */
.summary-box {
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
color: white;
padding: 2.5rem;
border-radius: 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.summary-box::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);
}
.summary-label {
font-size: 0.875rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 1rem;
}
.total-amount {
font-size: 3.5rem;
font-weight: 900;
margin: 1rem 0;
line-height: 1;
text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.summary-details {
background: rgba(255, 255, 255, 0.1);
border-radius: 0.75rem;
padding: 1.5rem;
margin-bottom: 2rem;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.875rem;
margin-bottom: 0.5rem;
color: rgba(255, 255, 255, 0.8);
}
.summary-divider {
height: 1px;
background: rgba(255, 255, 255, 0.2);
margin: 0.5rem 0;
}
.summary-note {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.6);
text-align: center;
}
/* === Donate Button === */
.donate-btn {
background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
color: white;
font-weight: 800;
padding: 1.25rem;
border-radius: 1rem;
width: 100%;
font-size: 1.1rem;
transition: all 0.3s ease;
margin-top: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
position: relative;
overflow: hidden;
}
.donate-btn:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.donate-btn:active {
transform: translateY(-1px);
}
.donate-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
}
.donate-btn:hover::before {
left: 100%;
}
.donate-text {
font-size: 1rem;
font-weight: bold;
}
.donate-icon {
font-size: 1.5rem;
}
/* === Animations === */
.floating {
animation: float 6s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 0.5s ease-out;
}
.slide-up {
animation: slideUp 0.6s ease-out;
}
/* === Hidden Utility === */
.hidden {
display: none !important;
}
/* === Grid Layout === */
.main-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 2rem;
}
@media (min-width: 1024px) {
.main-grid {
grid-template-columns: 8fr 4fr;
}
}
/* === Responsive === */
@media (max-width: 768px) {
.kaffarah-hero {
height: 350px;
}
.kaffarah-title {
font-size: 2rem;
}
.kaffarah-subtitle {
font-size: 1rem;
}
.main-container {
margin-top: -3rem;
}
.type-selector {
grid-template-columns: repeat(2, 1fr);
}
.total-amount {
font-size: 2.5rem;
}
.page-logo {
top: 1rem;
right: 1rem;
padding: 0.5rem 1rem;
}
}
@media (max-width: 480px) {
.type-selector {
grid-template-columns: 1fr;
}
.kaffarah-hero {
height: 300px;
}
.kaffarah-title {
font-size: 1.75rem;
}
.donate-text {
font-size: 0.9rem;
}
}
Ruhu Arındırmak ve Kalpleri Onarmak
Keffaretler ve Adaklar
Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.
Keffaret Türünü Seçin
Yemin Keffareti
10 Fakiri Doyurmak
Oruç Fidyesi
Özür veya hastalık nedeniyle
Oruç Keffareti
Kasıtlı oruç bozma için
Genel Adaklar
Belirlediğiniz Miktar
Yemin Keffareti
Bozduğunuz her yemin için on fakiri doyurmak
Keffaretini ödemek istediğiniz yemin sayısı
Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)
Oruç Fidyesi
Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için
Gün Sayısı
Her gün için bir fakiri doyurma maliyeti: 5$
Büyük Oruç Keffareti
Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için
Orucun bozulduğu gün sayısı
Keffaret: Her gün için 60 fakiri doyurmak (300$)
Genel Adaklar
Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir
Adak Bedeli
$
Toplam Keffaret Bedeli
50 $
Yemin Keffareti (Adet 1)
1 × 50$
Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
// Config
const COST_PER_MEAL = 5; // $5 per meal
const COSTS = {
yameen: 10 * COST_PER_MEAL, // 10 meals = $50
fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5
sawm: 60 * COST_PER_MEAL // 60 meals = $300
};
let currentType = 'yameen';
// Initialize the page
function initPage() {
selectType('yameen');
attachEventListeners();
}
// Select type function
function selectType(type) {
currentType = type;
// Update UI Toggle
document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-${type}`).classList.add('active');
// Toggle Input Forms
document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));
const inputForm = document.getElementById(`input-${type}`);
inputForm.classList.remove('hidden');
inputForm.classList.add('fade-in');
calculate();
}
// Adjust quantity function
function adjustQty(delta) {
const input = document.getElementById(`qty-${currentType}`);
let val = parseInt(input.value) || 0;
val = Math.max(1, val + delta);
input.value = val;
calculate();
}
// Calculate total function
function calculate() {
let total = 0;
let summaryText = '';
let calcText = '';
if (currentType === 'nazr') {
total = parseFloat(document.getElementById('amount-nazr').value) || 0;
summaryText = 'Para olarak adak';
calcText = `${total.toLocaleString()} $`;
} else {
const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;
const unitCost = COSTS[currentType];
total = qty * unitCost;
// Labels mapping
const labels = {
yameen: 'Yemin Keffareti',
fidya: 'Oruç Fidyesi',
sawm: 'Büyük Oruç Keffareti'
};
summaryText = `${labels[currentType]} (Adet ${qty})`;
calcText = `${qty} × ${unitCost}$`;
}
// Update UI
updateDisplay(total, summaryText, calcText);
}
// Update display function
function updateDisplay(total, summaryText, calcText) {
document.getElementById('total-display').textContent = total.toLocaleString() + ' $';
document.getElementById('summary-label').textContent = summaryText;
document.getElementById('summary-calc').textContent = calcText;
}
// Donate function
function donate() {
const amount = document.getElementById('total-display').textContent;
const summary = document.getElementById('summary-label').textContent;
const calc = document.getElementById('summary-calc').textContent;
if (parseFloat(amount) === 0) {
alert('Lütfen geçerli bir keffaret tutarı belirleyin');
return;
}
const message = `Selamun Aleykum, keffaret ödemek istiyorum:
${summary}
Detaylar: ${calc}
Toplam Tutar: ${amount}
Ödeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;
const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;
window.open(url, '_blank');
}
// Attach event listeners
function attachEventListeners() {
// Add input event listeners for all quantity inputs
['yameen', 'fidya', 'sawm'].forEach(type => {
const input = document.getElementById(`qty-${type}`);
if (input) {
input.addEventListener('input', calculate);
}
});
// Add input event listener for nazr amount
const nazrInput = document.getElementById('amount-nazr');
if (nazrInput) {
nazrInput.addEventListener('input', calculate);
}
// Add keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === 'ArrowUp' || e.key === '+') {
e.preventDefault();
adjustQty(1);
} else if (e.key === 'ArrowDown' || e.key === '-') {
e.preventDefault();
adjustQty(-1);
} else if (e.key === 'Escape') {
resetForm();
}
});
}
// Reset form function
function resetForm() {
selectType('yameen');
document.getElementById('qty-yameen').value = 1;
document.getElementById('amount-nazr').value = '';
calculate();
}
// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);
') (Line: 110)
gavias_content_builder_render_element('gva_row', Array, '
:root {
--brand-primary: #6d2435;
--brand-secondary: #b2946b;
--brand-green: #617f67;
--brand-beige: #f2d7b4;
--brand-light: #f9fafb;
--brand-dark: #282828;
--glass-bg: rgba(255, 255, 255, 0.95);
}
.alzakat .zakat-reveal {
opacity: 1;
transform: translateY(40px);
transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);
}
/* === Page Base === */
.kaffarah-page {
font-family: 'IBM Plex Sans Arabic', sans-serif;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
color: #2d3436;
min-height: 100vh;
}
/* === Hero Section === */
.kaffarah-hero {
position: relative;
height: 450px;
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;
}
.kaffarah-hero-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.3;
transform: scale(1.1);
transition: transform 10s ease-out;
}
.kaffarah-hero:hover .kaffarah-hero-img {
transform: scale(1);
}
.kaffarah-hero-content {
position: relative;
z-index: 10;
text-align: center;
color: white;
padding: 0 1rem;
}
.kaffarah-hero-badge {
display: inline-block;
padding: 0.5rem 1.5rem;
border-radius: 999px;
background: rgba(178, 148, 107, 0.2);
border: 1px solid rgba(178, 148, 107, 0.4);
color: #b2946b;
font-size: 0.875rem;
font-weight: bold;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.kaffarah-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.kaffarah-subtitle {
font-size: 1.25rem;
font-weight: 300;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
/* === Logo === */
.page-logo {
position: absolute;
top: 2rem;
right: 2rem;
z-index: 50;
display: flex;
align-items: center;
gap: 0.75rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 0.75rem 1.5rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.page-logo:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
}
/* === Main Container === */
.main-container {
margin-top: -5rem;
margin-bottom: 5rem;
position: relative;
z-index: 20;
}
/* === Glass Card === */
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 2rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.card-title {
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
margin-bottom: 2rem;
text-align: center;
}
/* === Type Selector === */
.type-selector {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.type-btn {
background: #f9fafb;
border: 2px solid transparent;
border-radius: 1rem;
padding: 1.5rem 1rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.type-btn:hover {
background: #fff;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.type-btn.active {
border-color: #b2946b;
background: #fff;
color: #6d2435;
box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);
}
.type-icon {
font-size: 2rem;
margin-bottom: 0.75rem;
color: #b2bec3;
transition: color 0.3s ease;
}
.type-btn.active .type-icon {
color: #b2946b;
}
.type-label {
font-weight: bold;
font-size: 0.95rem;
}
.type-desc {
font-size: 0.75rem;
color: #94a3b8;
margin-top: 0.25rem;
}
/* === Input Container === */
.input-container {
min-height: 250px;
display: flex;
flex-direction: column;
justify-content: center;
}
.input-form {
animation: fadeIn 0.5s ease-out;
}
.input-header {
text-align: center;
margin-bottom: 1.5rem;
}
.input-title {
font-size: 1.25rem;
font-weight: bold;
color: #1f2937;
}
.input-subtitle {
color: #6b7280;
margin-top: 0.5rem;
}
/* === Input Group === */
.input-group {
background: white;
border-radius: 1.25rem;
padding: 2rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
border: 1px solid #f1f2f6;
margin-bottom: 1.5rem;
}
.input-label {
display: block;
font-weight: bold;
color: #6d2435;
margin-bottom: 1rem;
text-align: center;
}
/* === Custom Number Input === */
.custom-number-input {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
background: #f8fafc;
border-radius: 0.75rem;
padding: 0.5rem;
max-width: 200px;
margin: 1.5rem auto 0;
}
.qty-btn {
width: 40px;
height: 40px;
border-radius: 0.625rem;
background: white;
color: #6d2435;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.qty-btn:hover {
transform: scale(1.1);
background: #6d2435;
color: white;
}
.qty-input {
width: 60px;
text-align: center;
background: transparent;
font-weight: 800;
font-size: 1.5rem;
color: #6d2435;
border: none;
outline: none;
}
/* === Custom Amount Input === */
.custom-amount-input {
max-width: 300px;
margin: 0 auto;
}
.amount-input-wrapper {
position: relative;
background: #f8fafc;
border-radius: 0.75rem;
border: 2px solid #e5e7eb;
transition: all 0.3s ease;
}
.amount-input-wrapper:focus-within {
border-color: #6d2435;
box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);
}
.amount-input {
width: 100%;
background: transparent;
border: none;
outline: none;
padding: 1rem 3rem;
text-align: center;
font-size: 1.5rem;
font-weight: bold;
color: #6d2435;
}
.amount-currency {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-weight: bold;
}
/* === Info Text === */
.info-text {
text-align: center;
font-size: 0.875rem;
color: #6b7280;
margin-top: 1rem;
}
.info-icon {
margin-right: 0.25rem;
}
/* === Summary Box === */
.summary-box {
background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);
color: white;
padding: 2.5rem;
border-radius: 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.summary-box::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);
}
.summary-label {
font-size: 0.875rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 1rem;
}
.total-amount {
font-size: 3.5rem;
font-weight: 900;
margin: 1rem 0;
line-height: 1;
text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.summary-details {
background: rgba(255, 255, 255, 0.1);
border-radius: 0.75rem;
padding: 1.5rem;
margin-bottom: 2rem;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.875rem;
margin-bottom: 0.5rem;
color: rgba(255, 255, 255, 0.8);
}
.summary-divider {
height: 1px;
background: rgba(255, 255, 255, 0.2);
margin: 0.5rem 0;
}
.summary-note {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.6);
text-align: center;
}
/* === Donate Button === */
.donate-btn {
background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
color: white;
font-weight: 800;
padding: 1.25rem;
border-radius: 1rem;
width: 100%;
font-size: 1.1rem;
transition: all 0.3s ease;
margin-top: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
position: relative;
overflow: hidden;
}
.donate-btn:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.donate-btn:active {
transform: translateY(-1px);
}
.donate-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
}
.donate-btn:hover::before {
left: 100%;
}
.donate-text {
font-size: 1rem;
font-weight: bold;
}
.donate-icon {
font-size: 1.5rem;
}
/* === Animations === */
.floating {
animation: float 6s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 0.5s ease-out;
}
.slide-up {
animation: slideUp 0.6s ease-out;
}
/* === Hidden Utility === */
.hidden {
display: none !important;
}
/* === Grid Layout === */
.main-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 2rem;
}
@media (min-width: 1024px) {
.main-grid {
grid-template-columns: 8fr 4fr;
}
}
/* === Responsive === */
@media (max-width: 768px) {
.kaffarah-hero {
height: 350px;
}
.kaffarah-title {
font-size: 2rem;
}
.kaffarah-subtitle {
font-size: 1rem;
}
.main-container {
margin-top: -3rem;
}
.type-selector {
grid-template-columns: repeat(2, 1fr);
}
.total-amount {
font-size: 2.5rem;
}
.page-logo {
top: 1rem;
right: 1rem;
padding: 0.5rem 1rem;
}
}
@media (max-width: 480px) {
.type-selector {
grid-template-columns: 1fr;
}
.kaffarah-hero {
height: 300px;
}
.kaffarah-title {
font-size: 1.75rem;
}
.donate-text {
font-size: 0.9rem;
}
}
Ruhu Arındırmak ve Kalpleri Onarmak
Keffaretler ve Adaklar
Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.
Keffaret Türünü Seçin
Yemin Keffareti
10 Fakiri Doyurmak
Oruç Fidyesi
Özür veya hastalık nedeniyle
Oruç Keffareti
Kasıtlı oruç bozma için
Genel Adaklar
Belirlediğiniz Miktar
Yemin Keffareti
Bozduğunuz her yemin için on fakiri doyurmak
Keffaretini ödemek istediğiniz yemin sayısı
Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)
Oruç Fidyesi
Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için
Gün Sayısı
Her gün için bir fakiri doyurma maliyeti: 5$
Büyük Oruç Keffareti
Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için
Orucun bozulduğu gün sayısı
Keffaret: Her gün için 60 fakiri doyurmak (300$)
Genel Adaklar
Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir
Adak Bedeli
$
Toplam Keffaret Bedeli
50 $
Yemin Keffareti (Adet 1)
1 × 50$
Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
// Config
const COST_PER_MEAL = 5; // $5 per meal
const COSTS = {
yameen: 10 * COST_PER_MEAL, // 10 meals = $50
fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5
sawm: 60 * COST_PER_MEAL // 60 meals = $300
};
let currentType = 'yameen';
// Initialize the page
function initPage() {
selectType('yameen');
attachEventListeners();
}
// Select type function
function selectType(type) {
currentType = type;
// Update UI Toggle
document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-${type}`).classList.add('active');
// Toggle Input Forms
document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));
const inputForm = document.getElementById(`input-${type}`);
inputForm.classList.remove('hidden');
inputForm.classList.add('fade-in');
calculate();
}
// Adjust quantity function
function adjustQty(delta) {
const input = document.getElementById(`qty-${currentType}`);
let val = parseInt(input.value) || 0;
val = Math.max(1, val + delta);
input.value = val;
calculate();
}
// Calculate total function
function calculate() {
let total = 0;
let summaryText = '';
let calcText = '';
if (currentType === 'nazr') {
total = parseFloat(document.getElementById('amount-nazr').value) || 0;
summaryText = 'Para olarak adak';
calcText = `${total.toLocaleString()} $`;
} else {
const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;
const unitCost = COSTS[currentType];
total = qty * unitCost;
// Labels mapping
const labels = {
yameen: 'Yemin Keffareti',
fidya: 'Oruç Fidyesi',
sawm: 'Büyük Oruç Keffareti'
};
summaryText = `${labels[currentType]} (Adet ${qty})`;
calcText = `${qty} × ${unitCost}$`;
}
// Update UI
updateDisplay(total, summaryText, calcText);
}
// Update display function
function updateDisplay(total, summaryText, calcText) {
document.getElementById('total-display').textContent = total.toLocaleString() + ' $';
document.getElementById('summary-label').textContent = summaryText;
document.getElementById('summary-calc').textContent = calcText;
}
// Donate function
function donate() {
const amount = document.getElementById('total-display').textContent;
const summary = document.getElementById('summary-label').textContent;
const calc = document.getElementById('summary-calc').textContent;
if (parseFloat(amount) === 0) {
alert('Lütfen geçerli bir keffaret tutarı belirleyin');
return;
}
const message = `Selamun Aleykum, keffaret ödemek istiyorum:
${summary}
Detaylar: ${calc}
Toplam Tutar: ${amount}
Ödeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;
const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;
window.open(url, '_blank');
}
// Attach event listeners
function attachEventListeners() {
// Add input event listeners for all quantity inputs
['yameen', 'fidya', 'sawm'].forEach(type => {
const input = document.getElementById(`qty-${type}`);
if (input) {
input.addEventListener('input', calculate);
}
});
// Add input event listener for nazr amount
const nazrInput = document.getElementById('amount-nazr');
if (nazrInput) {
nazrInput.addEventListener('input', calculate);
}
// Add keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === 'ArrowUp' || e.key === '+') {
e.preventDefault();
adjustQty(1);
} else if (e.key === 'ArrowDown' || e.key === '-') {
e.preventDefault();
adjustQty(-1);
} else if (e.key === 'Escape') {
resetForm();
}
});
}
// Reset form function
function resetForm() {
selectType('yameen');
document.getElementById('qty-yameen').value = 1;
document.getElementById('amount-nazr').value = '';
calculate();
}
// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);
') (Line: 62)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n :root {\r\n --brand-primary: #6d2435;\r\n --brand-secondary: #b2946b;\r\n --brand-green: #617f67;\r\n --brand-beige: #f2d7b4;\r\n --brand-light: #f9fafb;\r\n --brand-dark: #282828;\r\n --glass-bg: rgba(255, 255, 255, 0.95);\r\n }\r\n.alzakat .zakat-reveal {\r\n opacity: 1;\r\n transform: translateY(40px);\r\n transition: all 1s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n /* === Page Base === */\r\n .kaffarah-page {\r\n font-family: 'IBM Plex Sans Arabic', sans-serif;\r\n background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);\r\n color: #2d3436;\r\n min-height: 100vh;\r\n }\r\n\r\n /* === Hero Section === */\r\n .kaffarah-hero {\r\n position: relative;\r\n height: 450px;\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .kaffarah-hero-img {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 0.3;\r\n transform: scale(1.1);\r\n transition: transform 10s ease-out;\r\n }\r\n\r\n .kaffarah-hero:hover .kaffarah-hero-img {\r\n transform: scale(1);\r\n }\r\n\r\n .kaffarah-hero-content {\r\n position: relative;\r\n z-index: 10;\r\n text-align: center;\r\n color: white;\r\n padding: 0 1rem;\r\n }\r\n\r\n .kaffarah-hero-badge {\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 999px;\r\n background: rgba(178, 148, 107, 0.2);\r\n border: 1px solid rgba(178, 148, 107, 0.4);\r\n color: #b2946b;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n margin-bottom: 1.5rem;\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .kaffarah-title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n font-weight: 900;\r\n margin-bottom: 1rem;\r\n text-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .kaffarah-subtitle {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n opacity: 0.9;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n }\r\n\r\n /* === Logo === */\r\n .page-logo {\r\n position: absolute;\r\n top: 2rem;\r\n right: 2rem;\r\n z-index: 50;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n background: rgba(255, 255, 255, 0.1);\r\n backdrop-filter: blur(10px);\r\n padding: 0.75rem 1.5rem;\r\n border-radius: 1rem;\r\n border: 1px solid rgba(255, 255, 255, 0.2);\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .page-logo:hover {\r\n background: rgba(255, 255, 255, 0.2);\r\n transform: translateY(-2px);\r\n }\r\n\r\n /* === Main Container === */\r\n .main-container {\r\n margin-top: -5rem;\r\n margin-bottom: 5rem;\r\n position: relative;\r\n z-index: 20;\r\n }\r\n\r\n /* === Glass Card === */\r\n .glass-card {\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(20px);\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n border-radius: 2rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n }\r\n\r\n .card-title {\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 2rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Type Selector === */\r\n .type-selector {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .type-btn {\r\n background: #f9fafb;\r\n border: 2px solid transparent;\r\n border-radius: 1rem;\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .type-btn:hover {\r\n background: #fff;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-2px);\r\n }\r\n\r\n .type-btn.active {\r\n border-color: #b2946b;\r\n background: #fff;\r\n color: #6d2435;\r\n box-shadow: 0 10px 20px rgba(178, 148, 107, 0.15);\r\n }\r\n\r\n .type-icon {\r\n font-size: 2rem;\r\n margin-bottom: 0.75rem;\r\n color: #b2bec3;\r\n transition: color 0.3s ease;\r\n }\r\n\r\n .type-btn.active .type-icon {\r\n color: #b2946b;\r\n }\r\n\r\n .type-label {\r\n font-weight: bold;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .type-desc {\r\n font-size: 0.75rem;\r\n color: #94a3b8;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n /* === Input Container === */\r\n .input-container {\r\n min-height: 250px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .input-form {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .input-header {\r\n text-align: center;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-title {\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n color: #1f2937;\r\n }\r\n\r\n .input-subtitle {\r\n color: #6b7280;\r\n margin-top: 0.5rem;\r\n }\r\n\r\n /* === Input Group === */\r\n .input-group {\r\n background: white;\r\n border-radius: 1.25rem;\r\n padding: 2rem;\r\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n border: 1px solid #f1f2f6;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .input-label {\r\n display: block;\r\n font-weight: bold;\r\n color: #6d2435;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n\r\n /* === Custom Number Input === */\r\n .custom-number-input {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n padding: 0.5rem;\r\n max-width: 200px;\r\n margin: 1.5rem auto 0;\r\n }\r\n\r\n .qty-btn {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 0.625rem;\r\n background: white;\r\n color: #6d2435;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s ease;\r\n }\r\n\r\n .qty-btn:hover {\r\n transform: scale(1.1);\r\n background: #6d2435;\r\n color: white;\r\n }\r\n\r\n .qty-input {\r\n width: 60px;\r\n text-align: center;\r\n background: transparent;\r\n font-weight: 800;\r\n font-size: 1.5rem;\r\n color: #6d2435;\r\n border: none;\r\n outline: none;\r\n }\r\n\r\n /* === Custom Amount Input === */\r\n .custom-amount-input {\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .amount-input-wrapper {\r\n position: relative;\r\n background: #f8fafc;\r\n border-radius: 0.75rem;\r\n border: 2px solid #e5e7eb;\r\n transition: all 0.3s ease;\r\n }\r\n\r\n .amount-input-wrapper:focus-within {\r\n border-color: #6d2435;\r\n box-shadow: 0 0 0 3px rgba(109, 36, 53, 0.1);\r\n }\r\n\r\n .amount-input {\r\n width: 100%;\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n padding: 1rem 3rem;\r\n text-align: center;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #6d2435;\r\n }\r\n\r\n .amount-currency {\r\n position: absolute;\r\n right: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #6b7280;\r\n font-weight: bold;\r\n }\r\n\r\n /* === Info Text === */\r\n .info-text {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-top: 1rem;\r\n }\r\n\r\n .info-icon {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n /* === Summary Box === */\r\n .summary-box {\r\n background: linear-gradient(135deg, #6d2435 0%, #8a2c44 100%);\r\n color: white;\r\n padding: 2.5rem;\r\n border-radius: 1.5rem;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n .summary-box::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 70%);\r\n }\r\n\r\n .summary-label {\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: rgba(255, 255, 255, 0.7);\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .total-amount {\r\n font-size: 3.5rem;\r\n font-weight: 900;\r\n margin: 1rem 0;\r\n line-height: 1;\r\n text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .summary-details {\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 0.75rem;\r\n padding: 1.5rem;\r\n margin-bottom: 2rem;\r\n backdrop-filter: blur(10px);\r\n border: 1px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .summary-row {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 0.875rem;\r\n margin-bottom: 0.5rem;\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n\r\n .summary-divider {\r\n height: 1px;\r\n background: rgba(255, 255, 255, 0.2);\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .summary-note {\r\n font-size: 0.75rem;\r\n color: rgba(255, 255, 255, 0.6);\r\n text-align: center;\r\n }\r\n\r\n /* === Donate Button === */\r\n .donate-btn {\r\n background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);\r\n color: white;\r\n font-weight: 800;\r\n padding: 1.25rem;\r\n border-radius: 1rem;\r\n width: 100%;\r\n font-size: 1.1rem;\r\n transition: all 0.3s ease;\r\n margin-top: auto;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1rem;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .donate-btn:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .donate-btn:active {\r\n transform: translateY(-1px);\r\n }\r\n\r\n .donate-btn::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n transition: 0.5s;\r\n }\r\n\r\n .donate-btn:hover::before {\r\n left: 100%;\r\n }\r\n\r\n .donate-text {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n\r\n .donate-icon {\r\n font-size: 1.5rem;\r\n }\r\n\r\n /* === Animations === */\r\n .floating {\r\n animation: float 6s ease-in-out infinite;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 0.5s ease-out;\r\n }\r\n\r\n .slide-up {\r\n animation: slideUp 0.6s ease-out;\r\n }\r\n\r\n /* === Hidden Utility === */\r\n .hidden {\r\n display: none !important;\r\n }\r\n\r\n /* === Grid Layout === */\r\n .main-grid {\r\n display: grid;\r\n grid-template-columns: repeat(1, 1fr);\r\n gap: 2rem;\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .main-grid {\r\n grid-template-columns: 8fr 4fr;\r\n }\r\n }\r\n\r\n /* === Responsive === */\r\n @media (max-width: 768px) {\r\n .kaffarah-hero {\r\n height: 350px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 2rem;\r\n }\r\n \r\n .kaffarah-subtitle {\r\n font-size: 1rem;\r\n }\r\n \r\n .main-container {\r\n margin-top: -3rem;\r\n }\r\n \r\n .type-selector {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n \r\n .total-amount {\r\n font-size: 2.5rem;\r\n }\r\n \r\n .page-logo {\r\n top: 1rem;\r\n right: 1rem;\r\n padding: 0.5rem 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n .type-selector {\r\n grid-template-columns: 1fr;\r\n }\r\n \r\n .kaffarah-hero {\r\n height: 300px;\r\n }\r\n \r\n .kaffarah-title {\r\n font-size: 1.75rem;\r\n }\r\n \r\n .donate-text {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ruhu Arındırmak ve Kalpleri Onarmak\r\n Keffaretler ve Adaklar\r\n \r\n \r\n Üzerinizdeki keffaret veya adakları kolaylıkla yerine getirin, Vicdan bunları hak sahiplerine yani fakirlere ve miskinlere ulaştırsın.\r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n\r\n \r\n \r\n \r\n Keffaret Türünü Seçin\r\n\r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n 10 Fakiri Doyurmak\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Özür veya hastalık nedeniyle\r\n \r\n \r\n \r\n Oruç Keffareti\r\n Kasıtlı oruç bozma için\r\n \r\n \r\n \r\n Genel Adaklar\r\n Belirlediğiniz Miktar\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Yemin Keffareti\r\n Bozduğunuz her yemin için on fakiri doyurmak\r\n \r\n \r\n Keffaretini ödemek istediğiniz yemin sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bir fakiri doyurma maliyeti: 5$ (Bir yemin için toplam 50$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Oruç Fidyesi\r\n Sürekli özür, hamilelik veya emzirme nedeniyle oruç tutamayanlar için\r\n \r\n \r\n Gün Sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Her gün için bir fakiri doyurma maliyeti: 5$\r\n \r\n \r\n\r\n \r\n \r\n \r\n Büyük Oruç Keffareti\r\n Ramazan gününde cinsel ilişki vb. ile kasıtlı olarak orucunu bozanlar için\r\n \r\n \r\n Orucun bozulduğu gün sayısı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Keffaret: Her gün için 60 fakiri doyurmak (300$)\r\n \r\n \r\n\r\n \r\n \r\n \r\n Genel Adaklar\r\n Adağını yerine getirmek ibadettir ve Allah'a yakınlaşma vesilesidir\r\n \r\n \r\n Adak Bedeli\r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Toplam Keffaret Bedeli\r\n 50 $\r\n\r\n \r\n \r\n Yemin Keffareti (Adet 1)\r\n 1 × 50$\r\n \r\n \r\n \r\n Bu tutarın tamamı, fakirleri doyurmak ve keffaretleri şer'i kanallara dağıtmak için kullanılacaktır.\r\n \r\n \r\n\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n \r\n \r\n \r\n \r\n\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Config\r\n const COST_PER_MEAL = 5; // $5 per meal\r\n const COSTS = {\r\n yameen: 10 * COST_PER_MEAL, // 10 meals = $50\r\n fidya: 1 * COST_PER_MEAL, // 1 meal per day = $5\r\n sawm: 60 * COST_PER_MEAL // 60 meals = $300\r\n };\r\n\r\n let currentType = 'yameen';\r\n\r\n // Initialize the page\r\n function initPage() {\r\n selectType('yameen');\r\n attachEventListeners();\r\n }\r\n\r\n // Select type function\r\n function selectType(type) {\r\n currentType = type;\r\n\r\n // Update UI Toggle\r\n document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n document.getElementById(`btn-${type}`).classList.add('active');\r\n\r\n // Toggle Input Forms\r\n document.querySelectorAll('.input-form').forEach(f => f.classList.add('hidden'));\r\n const inputForm = document.getElementById(`input-${type}`);\r\n inputForm.classList.remove('hidden');\r\n inputForm.classList.add('fade-in');\r\n\r\n calculate();\r\n }\r\n\r\n // Adjust quantity function\r\n function adjustQty(delta) {\r\n const input = document.getElementById(`qty-${currentType}`);\r\n let val = parseInt(input.value) || 0;\r\n val = Math.max(1, val + delta);\r\n input.value = val;\r\n calculate();\r\n }\r\n\r\n // Calculate total function\r\n function calculate() {\r\n let total = 0;\r\n let summaryText = '';\r\n let calcText = '';\r\n\r\n if (currentType === 'nazr') {\r\n total = parseFloat(document.getElementById('amount-nazr').value) || 0;\r\n summaryText = 'Para olarak adak';\r\n calcText = `${total.toLocaleString()} $`;\r\n } else {\r\n const qty = parseInt(document.getElementById(`qty-${currentType}`).value) || 0;\r\n const unitCost = COSTS[currentType];\r\n total = qty * unitCost;\r\n\r\n // Labels mapping\r\n const labels = {\r\n yameen: 'Yemin Keffareti',\r\n fidya: 'Oruç Fidyesi',\r\n sawm: 'Büyük Oruç Keffareti'\r\n };\r\n\r\n summaryText = `${labels[currentType]} (Adet ${qty})`;\r\n calcText = `${qty} × ${unitCost}$`;\r\n }\r\n\r\n // Update UI\r\n updateDisplay(total, summaryText, calcText);\r\n }\r\n\r\n // Update display function\r\n function updateDisplay(total, summaryText, calcText) {\r\n document.getElementById('total-display').textContent = total.toLocaleString() + ' $';\r\n document.getElementById('summary-label').textContent = summaryText;\r\n document.getElementById('summary-calc').textContent = calcText;\r\n }\r\n\r\n // Donate function\r\n function donate() {\r\n const amount = document.getElementById('total-display').textContent;\r\n const summary = document.getElementById('summary-label').textContent;\r\n const calc = document.getElementById('summary-calc').textContent;\r\n\r\n if (parseFloat(amount) === 0) {\r\n alert('Lütfen geçerli bir keffaret tutarı belirleyin');\r\n return;\r\n }\r\n\r\n const message = `Selamun Aleykum, keffaret ödemek istiyorum:\r\n${summary}\r\nDetaylar: ${calc}\r\nToplam Tutar: ${amount}\r\nÖdeme linki veya banka hesap bilgilerini gönderebilir misiniz?`;\r\n\r\n const url = `https://wa.me/905057763103?text=${encodeURIComponent(message)}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n // Attach event listeners\r\n function attachEventListeners() {\r\n // Add input event listeners for all quantity inputs\r\n ['yameen', 'fidya', 'sawm'].forEach(type => {\r\n const input = document.getElementById(`qty-${type}`);\r\n if (input) {\r\n input.addEventListener('input', calculate);\r\n }\r\n });\r\n\r\n // Add input event listener for nazr amount\r\n const nazrInput = document.getElementById('amount-nazr');\r\n if (nazrInput) {\r\n nazrInput.addEventListener('input', calculate);\r\n }\r\n\r\n // Add keyboard shortcuts\r\n document.addEventListener('keydown', function(e) {\r\n if (e.key === 'ArrowUp' || e.key === '+') {\r\n e.preventDefault();\r\n adjustQty(1);\r\n } else if (e.key === 'ArrowDown' || e.key === '-') {\r\n e.preventDefault();\r\n adjustQty(-1);\r\n } else if (e.key === 'Escape') {\r\n resetForm();\r\n }\r\n });\r\n }\r\n\r\n // Reset form function\r\n function resetForm() {\r\n selectType('yameen');\r\n document.getElementById('qty-yameen').value = 1;\r\n document.getElementById('amount-nazr').value = '';\r\n calculate();\r\n }\r\n\r\n // Initialize when DOM is loaded\r\n document.addEventListener('DOMContentLoaded', initPage);\r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)