/* ============================================================
   COMPONENTS — Luxury Minimal UI
   ============================================================ */

/* ── Contact Page ── */
.sff-contact { background: var(--sff-white); }
.sff-contact__grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: clamp(var(--sp-12), 6vw, var(--sp-24));
    align-items: start;
}
.sff-contact__info { padding-top: var(--sp-4); }
.sff-contact__info .label { margin-bottom: var(--sp-5); }
.sff-contact__info h2 { margin-bottom: var(--sp-6); }
.sff-contact__info p  { color: var(--sff-mid); margin-bottom: var(--sp-8); }
.sff-contact__details { display: flex; flex-direction: column; gap: var(--sp-5); margin-bottom: var(--sp-8); }
.sff-contact__detail  { display: flex; align-items: flex-start; gap: var(--sp-4); }
.sff-contact__detail-icon {
    width: 36px; height: 36px;
    border: 1px solid var(--sff-border);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; color: var(--sff-terracotta); font-size: 1rem;
}
.sff-contact__detail-label {
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sff-mid);
    margin-bottom: var(--sp-1);
}
.sff-contact__detail-value { font-size: var(--text-base); color: var(--sff-charcoal); }
.sff-contact__detail-value a:hover { color: var(--sff-terracotta); }
.sff-contact__social { display: flex; gap: var(--sp-3); }
.sff-contact__social-link {
    width: 38px; height: 38px;
    border: 1px solid var(--sff-border);
    display: flex; align-items: center; justify-content: center;
    color: var(--sff-mid);
    transition: all var(--t-fast);
}
.sff-contact__social-link:hover { border-color: var(--sff-terracotta); color: var(--sff-terracotta); background: var(--sff-terracotta-light); }
.sff-contact__social-link svg { width: 14px; height: 14px; fill: currentColor; }

.sff-contact__form-wrap { background: var(--sff-cream); padding: var(--sp-10); }
.sff-contact__form { display: flex; flex-direction: column; gap: var(--sp-5); }
.sff-contact__form-title {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    color: var(--sff-charcoal);
    margin-bottom: var(--sp-6);
}
@media (max-width: 768px) { .sff-contact__grid { grid-template-columns: 1fr; } }

/* ── FAQ / Accordion ── */
.sff-faq { background: var(--sff-cream); }
.sff-faq__header { text-align: center; margin-bottom: var(--sp-12); }
.sff-faq__header .label { margin-bottom: var(--sp-4); }
.sff-accordion { display: flex; flex-direction: column; gap: 0; }
.sff-accordion__item { border-bottom: 1px solid var(--sff-border-light); }
.sff-accordion__trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-6);
    padding: var(--sp-6) 0;
    background: transparent; border: none;
    text-align: left;
    cursor: pointer;
    font-family: var(--font-display);
    font-size: var(--text-xl);
    color: var(--sff-charcoal);
    transition: color var(--t-fast);
}
.sff-accordion__trigger:hover { color: var(--sff-terracotta); }
.sff-accordion__icon {
    width: 20px; height: 20px; flex-shrink: 0;
    border: 1px solid var(--sff-border);
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; color: var(--sff-mid);
    transition: transform var(--t-base) var(--ease-out), background var(--t-fast);
}
.sff-accordion__item.is-open .sff-accordion__icon {
    transform: rotate(45deg);
    background: var(--sff-terracotta);
    border-color: var(--sff-terracotta);
    color: var(--sff-white);
}
.sff-accordion__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--t-slow) var(--ease-out), padding var(--t-base);
}
.sff-accordion__body-inner {
    padding-bottom: var(--sp-6);
    font-size: var(--text-base);
    color: var(--sff-mid);
    line-height: 1.7;
    max-width: 70ch;
}

/* ── Investment / Pricing overview ── */
.sff-investment { background: var(--sff-white); }
.sff-investment__header { text-align: center; margin-bottom: var(--sp-12); }
.sff-investment__header .label { margin-bottom: var(--sp-4); }
.sff-investment__header h2 { margin-bottom: var(--sp-5); }
.sff-investment__header p  { margin-inline: auto; color: var(--sff-mid); font-size: var(--text-lg); }
.sff-investment__categories {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-6);
    margin-bottom: var(--sp-16);
}
.sff-investment__cat {
    padding: var(--sp-8);
    border: 1px solid var(--sff-border-light);
    background: var(--sff-cream);
    display: flex;
    align-items: center;
    gap: var(--sp-6);
    text-decoration: none;
    transition: box-shadow var(--t-base), border-color var(--t-base);
}
.sff-investment__cat:hover { box-shadow: var(--shadow); border-color: var(--sff-border); }
.sff-investment__cat-img { width: 80px; height: 80px; object-fit: cover; flex-shrink: 0; }
.sff-investment__cat-name {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    color: var(--sff-charcoal);
    margin-bottom: var(--sp-1);
}
.sff-investment__cat-from { font-size: var(--text-sm); color: var(--sff-muted); }
.sff-investment__cat-from strong { color: var(--sff-terracotta); }
@media (max-width: 640px) {
    .sff-investment__categories { grid-template-columns: 1fr; }
    .sff-investment__cat-img { width: 60px; height: 60px; }
}

/* ── Client Login ── */
.sff-login-page {
    min-height: calc(100vh - var(--header-h));
    background: var(--sff-cream);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-block: var(--sp-16);
}
.sff-login-card {
    background: var(--sff-white);
    border: 1px solid var(--sff-border-light);
    padding: var(--sp-12) var(--sp-10);
    width: 100%;
    max-width: 440px;
    text-align: center;
}
.sff-login-card__logo {
    font-family: var(--font-display);
    font-size: 1.4rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--sff-charcoal);
    margin-bottom: var(--sp-3);
}
.sff-login-card .label  { margin-bottom: var(--sp-8); }
.sff-login-card h2      { margin-bottom: var(--sp-2); }
.sff-login-card__sub    { font-size: var(--text-sm); color: var(--sff-muted); margin-bottom: var(--sp-8); }
.sff-login-card__form   { text-align: left; display: flex; flex-direction: column; gap: var(--sp-4); }
.sff-login-card__forgot { text-align: right; margin-top: calc(-1 * var(--sp-2)); }
.sff-login-card__forgot a { font-size: var(--text-xs); color: var(--sff-muted); }
.sff-login-card__forgot a:hover { color: var(--sff-terracotta); }
.sff-login-card__divider { height: 1px; background: var(--sff-border-light); margin-block: var(--sp-6); }
.sff-login-card__register { font-size: var(--text-sm); color: var(--sff-mid); text-align: center; }

/* ── Reviews page ── */
.sff-reviews-page { background: var(--sff-cream); }
.sff-reviews-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-5);
}
@media (max-width: 900px) { .sff-reviews-page__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sff-reviews-page__grid { grid-template-columns: 1fr; } }

/* ── Leave a Review / Star Rating ── */
.sff-review-form { background: var(--sff-white); }
.sff-review-form__card {
    max-width: 600px;
    margin-inline: auto;
    background: var(--sff-cream);
    padding: var(--sp-10);
    border: 1px solid var(--sff-border-light);
}
.sff-star-input { display: flex; flex-direction: row-reverse; gap: var(--sp-2); justify-content: flex-end; }
.sff-star-input input { display: none; }
.sff-star-input label {
    cursor: pointer;
    font-size: 1.6rem;
    color: var(--sff-border);
    transition: color var(--t-fast);
}
.sff-star-input input:checked ~ label,
.sff-star-input label:hover,
.sff-star-input label:hover ~ label { color: var(--sff-champagne); }

/* ── Consent Form ── */
.sff-consent-page {
    min-height: calc(100vh - var(--header-h));
    background: var(--sff-cream);
    display: flex;
    align-items: center;
    padding-block: var(--sp-16);
}
.sff-consent-card {
    max-width: 640px;
    width: 100%;
    margin-inline: auto;
    background: var(--sff-white);
    border: 1px solid var(--sff-border-light);
    padding: var(--sp-10) var(--sp-12);
}
.sff-consent-card__logo {
    font-family: var(--font-display);
    font-size: 1.3rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    margin-bottom: var(--sp-8);
    display: block;
    text-align: center;
}
.sff-consent-card h2 { margin-bottom: var(--sp-3); }
.sff-consent-card p  { color: var(--sff-mid); margin-bottom: var(--sp-8); font-size: var(--text-sm); }
.sff-consent-item {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-4);
    padding: var(--sp-5) 0;
    border-bottom: 1px solid var(--sff-border-light);
}
.sff-consent-item:last-of-type { border-bottom: 0; }
.sff-consent-item__text { flex: 1; }
.sff-consent-item__label { font-size: var(--text-sm); font-weight: 600; color: var(--sff-charcoal); margin-bottom: var(--sp-1); }
.sff-consent-item__desc  { font-size: var(--text-xs); color: var(--sff-muted); line-height: 1.5; }
/* toggle */
.sff-toggle { position: relative; width: 44px; height: 24px; flex-shrink: 0; }
.sff-toggle input { opacity: 0; width: 0; height: 0; }
.sff-toggle__slider {
    position: absolute; inset: 0;
    background: var(--sff-border);
    border-radius: 24px;
    cursor: pointer;
    transition: background var(--t-base);
}
.sff-toggle__slider::before {
    content: '';
    position: absolute;
    width: 18px; height: 18px;
    left: 3px; top: 3px;
    background: var(--sff-white);
    border-radius: 50%;
    transition: transform var(--t-base) var(--ease-out);
}
.sff-toggle input:checked + .sff-toggle__slider { background: var(--sff-terracotta); }
.sff-toggle input:checked + .sff-toggle__slider::before { transform: translateX(20px); }
@media (max-width: 600px) { .sff-consent-card { padding: var(--sp-8); } }

/* ── Process steps ── */
.sff-process { background: var(--sff-bone); }
.sff-process__header { text-align: center; margin-bottom: var(--sp-12); }
.sff-process__header .label { margin-bottom: var(--sp-4); }
.sff-process__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-8); }
.sff-process__step { text-align: center; }
.sff-process__step-num {
    font-family: var(--font-display);
    font-size: var(--text-6xl);
    font-weight: 300;
    color: var(--sff-border);
    line-height: 1;
    display: block;
    margin-bottom: var(--sp-4);
}
.sff-process__step-title {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    color: var(--sff-charcoal);
    margin-bottom: var(--sp-3);
}
.sff-process__step-desc { font-size: var(--text-sm); color: var(--sff-mid); line-height: 1.6; max-width: 22ch; margin-inline: auto; }
@media (max-width: 768px) { .sff-process__steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .sff-process__steps { grid-template-columns: 1fr; } }

/* ── Tab switcher ── */
.sff-tabs { border-bottom: 1px solid var(--sff-border-light); display: flex; gap: 0; margin-bottom: var(--sp-8); overflow-x: auto; }
.sff-tab-btn {
    padding: var(--sp-4) var(--sp-6);
    background: transparent; border: none;
    font-size: var(--text-xs); font-weight: 500;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--sff-muted); cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color var(--t-fast), border-color var(--t-fast);
}
.sff-tab-btn:hover   { color: var(--sff-charcoal); }
.sff-tab-btn.is-active { color: var(--sff-charcoal); border-bottom-color: var(--sff-terracotta); }
.sff-tab-panel { display: none; }
.sff-tab-panel.is-active { display: block; }
