/* FATHERMAN Website Design System v1.1
 * Editorial, warm, restrained. Prefix all classes with fm- to avoid Elementor conflicts.
 */
:root{
  --fm-black:#171717;
  --fm-ivory:#F7F3EA;
  --fm-lemon:#F8E83D;
  --fm-white:#FFFDF8;
  --fm-sage:#AEB9A5;
  --fm-gray:#817E77;
  --fm-border:#E5E0D7;
  --fm-terracotta:#B97862;
  --fm-stone-blue:#8798A3;
  --fm-success:#47725A;
  --fm-warning:#9A6D25;
  --fm-error:#9B4545;
  --fm-disabled:#CBC7BE;
  --fm-radius-sm:6px;
  --fm-radius-btn:8px;
  --fm-radius-card:12px;
  --fm-radius-feature:16px;
  --fm-container:1200px;
  --fm-container-narrow:820px;
  --fm-container-wide:1440px;
  --fm-space-1:4px;
  --fm-space-2:8px;
  --fm-space-3:12px;
  --fm-space-4:16px;
  --fm-space-5:24px;
  --fm-space-6:32px;
  --fm-space-7:48px;
  --fm-space-8:64px;
  --fm-space-9:80px;
  --fm-space-10:120px;
  --fm-sans:"Plus Jakarta Sans",Inter,Arial,sans-serif;
  --fm-serif:"DM Serif Display",Georgia,serif;
}

/* ---------- Base / typography ---------- */
.fm-page,.fm-page *{box-sizing:border-box}
.fm-page{font-family:var(--fm-sans);color:var(--fm-black);background:var(--fm-ivory);font-size:17px;line-height:1.65}
.fm-page a{color:inherit}
.fm-display .elementor-heading-title,.fm-display{font-family:var(--fm-sans)!important;font-size:72px!important;font-weight:600!important;line-height:1.05!important;letter-spacing:-.035em!important}
.fm-h1 .elementor-heading-title,.fm-h1{font-family:var(--fm-sans)!important;font-size:56px!important;font-weight:600!important;line-height:1.10!important;letter-spacing:-.028em!important}
.fm-h2 .elementor-heading-title,.fm-h2{font-family:var(--fm-sans)!important;font-size:44px!important;font-weight:600!important;line-height:1.15!important;letter-spacing:-.022em!important}
.fm-h3 .elementor-heading-title,.fm-h3{font-family:var(--fm-sans)!important;font-size:32px!important;font-weight:600!important;line-height:1.20!important;letter-spacing:-.018em!important}
.fm-h4 .elementor-heading-title,.fm-h4{font-family:var(--fm-sans)!important;font-size:24px!important;font-weight:600!important;line-height:1.30!important}
.fm-body-lg .elementor-widget-container,.fm-body-lg{font-size:20px!important;font-weight:400!important;line-height:1.65!important}
.fm-body .elementor-widget-container,.fm-body{font-size:17px!important;font-weight:400!important;line-height:1.65!important}
.fm-small .elementor-widget-container,.fm-small{font-size:14px!important;line-height:1.55!important}
.fm-label .elementor-heading-title,.fm-label{font-size:13px!important;font-weight:600!important;line-height:1.4!important;letter-spacing:.10em!important;text-transform:uppercase!important}
.fm-serif .elementor-heading-title,.fm-serif{font-family:var(--fm-serif)!important;font-weight:400!important;letter-spacing:-.01em!important}
.fm-muted{color:var(--fm-gray)!important}
.fm-inverse,.fm-inverse .elementor-heading-title,.fm-inverse .elementor-widget-container{color:var(--fm-white)!important}
.fm-lemon-text,.fm-lemon-text .elementor-heading-title{color:var(--fm-lemon)!important}
.fm-max-copy{max-width:680px}

/* ---------- Layout ---------- */
.fm-section{padding:104px 0!important;width:100%!important}
.fm-section-tight{padding:72px 0!important}
.fm-section-ivory{background:var(--fm-ivory)!important}
.fm-section-white{background:var(--fm-white)!important}
.fm-section-black{background:var(--fm-black)!important;color:var(--fm-white)!important}
.fm-section-lemon{background:var(--fm-lemon)!important}
.fm-container{width:min(calc(100% - 48px),var(--fm-container))!important;max-width:var(--fm-container)!important;margin-inline:auto!important;padding:0!important}
.fm-container-narrow{width:min(calc(100% - 48px),var(--fm-container-narrow))!important;max-width:var(--fm-container-narrow)!important;margin-inline:auto!important;padding:0!important}
.fm-container-wide{width:min(calc(100% - 48px),var(--fm-container-wide))!important;max-width:var(--fm-container-wide)!important;margin-inline:auto!important;padding:0!important}
.fm-grid-2{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;gap:64px!important;align-items:center!important}
.fm-grid-2-even{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:40px!important}
.fm-grid-3{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}
.fm-grid-4{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:20px!important}
.fm-stack-8{display:flex!important;flex-direction:column!important;gap:8px!important}
.fm-stack-12{display:flex!important;flex-direction:column!important;gap:12px!important}
.fm-stack-16{display:flex!important;flex-direction:column!important;gap:16px!important}
.fm-stack-24{display:flex!important;flex-direction:column!important;gap:24px!important}
.fm-stack-32{display:flex!important;flex-direction:column!important;gap:32px!important}
.fm-stack-48{display:flex!important;flex-direction:column!important;gap:48px!important}
.fm-row{display:flex!important;flex-direction:row!important;align-items:center!important;gap:16px!important;flex-wrap:wrap!important}
.fm-space-between{justify-content:space-between!important}
.fm-align-start{align-items:flex-start!important}
.fm-center{text-align:center!important;align-items:center!important}
.fm-section-head{display:flex!important;flex-direction:column!important;gap:16px!important;margin-bottom:48px!important;max-width:760px!important}

/* ---------- Header / footer ---------- */
.fm-site-header{position:sticky!important;top:0!important;z-index:1000!important;background:rgba(247,243,234,.94)!important;backdrop-filter:blur(10px);border-bottom:1px solid rgba(23,23,23,.08)!important;padding:14px 0!important}
.fm-header-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important}
.fm-wordmark .elementor-heading-title,.fm-wordmark{font-size:20px!important;font-weight:700!important;letter-spacing:-.03em!important;white-space:nowrap}
.fm-nav-desktop{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:600}
.fm-nav-desktop a{text-decoration:none;opacity:.88}.fm-nav-desktop a:hover{opacity:1}
.fm-mobile-nav{display:none;position:relative}
.fm-mobile-nav summary{cursor:pointer;font-size:14px;font-weight:700;list-style:none;padding:9px 0}
.fm-mobile-nav summary::-webkit-details-marker{display:none}
.fm-mobile-nav[open] .fm-mobile-panel{display:flex}
.fm-mobile-panel{position:absolute;right:0;top:42px;min-width:250px;background:var(--fm-white);border:1px solid var(--fm-border);border-radius:12px;padding:18px;display:none;flex-direction:column;gap:14px;box-shadow:0 18px 50px rgba(23,23,23,.10)}
.fm-mobile-panel a{text-decoration:none;font-weight:600}
.fm-site-footer{background:var(--fm-black)!important;color:var(--fm-white)!important;padding:88px 0 32px!important}
.fm-footer-grid{display:grid!important;grid-template-columns:1.5fr repeat(3,1fr)!important;gap:48px!important}
.fm-footer-grid a{color:var(--fm-white)!important;text-decoration:none;opacity:.76}.fm-footer-grid a:hover{opacity:1}

/* ---------- Buttons ---------- */
.fm-btn-primary .elementor-button,.fm-button.fm-button-primary{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 22px;border-radius:var(--fm-radius-btn);background:var(--fm-black)!important;color:var(--fm-white)!important;font-family:var(--fm-sans)!important;font-size:16px!important;font-weight:600!important;text-decoration:none;border:1px solid var(--fm-black)!important;box-shadow:none!important;transition:transform .25s ease,opacity .25s ease}
.fm-btn-accent .elementor-button,.fm-button.fm-button-accent{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 22px;border-radius:var(--fm-radius-btn);background:var(--fm-lemon)!important;color:var(--fm-black)!important;font-family:var(--fm-sans)!important;font-size:16px!important;font-weight:600!important;text-decoration:none;border:1px solid var(--fm-lemon)!important;box-shadow:none!important;transition:transform .25s ease}
.fm-btn-secondary .elementor-button,.fm-button.fm-button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 22px;border-radius:var(--fm-radius-btn);background:transparent!important;color:var(--fm-black)!important;font-family:var(--fm-sans)!important;font-size:16px!important;font-weight:600!important;text-decoration:none;border:1px solid var(--fm-black)!important;box-shadow:none!important;transition:transform .25s ease}
.fm-btn-primary .elementor-button:hover,.fm-btn-accent .elementor-button:hover,.fm-btn-secondary .elementor-button:hover,.fm-button:hover{transform:translateY(-2px)}
.fm-text-link .elementor-button{background:transparent!important;color:var(--fm-black)!important;padding:0!important;border:none!important;font-family:var(--fm-sans)!important;font-size:16px!important;font-weight:600!important;box-shadow:none!important}
.fm-section-black .fm-text-link .elementor-button{color:var(--fm-white)!important}

/* ---------- Home Frame / photo placeholders ---------- */
.fm-home-frame{position:relative;overflow:hidden;border:1px solid rgba(23,23,23,.12);background:#E8E2D7;min-height:520px;border-radius:4px 84px 4px 4px}
.fm-home-frame:after{content:"";position:absolute;left:26px;bottom:26px;width:64px;height:7px;background:var(--fm-lemon)}
.fm-photo-placeholder{min-height:100%;height:100%;display:flex;align-items:flex-end;padding:28px;background:linear-gradient(145deg,#D8D1C5,#EEE9DF);font-size:14px;color:#5D5A55;line-height:1.5}
.fm-frame-window{border-radius:90px 6px 6px 6px}
.fm-frame-door{border-radius:6px 74px 6px 6px}
.fm-frame-offset{border-radius:6px 6px 72px 6px}

/* ---------- Cards ---------- */
.fm-card{background:var(--fm-white)!important;border:1px solid var(--fm-border)!important;border-radius:var(--fm-radius-card)!important;padding:28px!important;box-shadow:none!important;transition:transform .28s ease,border-color .28s ease}
.fm-card:hover{transform:translateY(-4px);border-color:#D6D0C5!important}
.fm-universe-card{position:relative;min-height:330px!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;padding:28px!important;background:var(--fm-white)!important;border:1px solid var(--fm-border)!important;border-radius:var(--fm-radius-card)!important;overflow:hidden!important}
.fm-universe-card:before{content:"";position:absolute;left:0;top:0;width:6px;height:100%;background:var(--fm-sage)}
.fm-universe-pasangan:before{background:var(--fm-terracotta)}
.fm-universe-anak:before{background:var(--fm-lemon)}
.fm-universe-keluarga:before{background:var(--fm-stone-blue)}
.fm-card-number{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--fm-gray)}
.fm-quick-card{min-height:310px!important;justify-content:space-between!important;background:var(--fm-white)!important;border:1px solid var(--fm-border)!important;border-radius:var(--fm-radius-card)!important;padding:26px!important;position:relative;overflow:hidden}
.fm-quick-card:after{content:"";position:absolute;right:-24px;bottom:-24px;width:100px;height:100px;border-radius:50%;background:var(--fm-lemon);opacity:.55}
.fm-feature-card{background:var(--fm-white)!important;border:1px solid var(--fm-border)!important;border-radius:var(--fm-radius-feature)!important;padding:40px!important}
.fm-book-card{background:transparent!important;padding:0!important;display:flex!important;flex-direction:column!important;gap:14px!important}
.fm-book-cover{aspect-ratio:4/5;border-radius:4px;overflow:hidden;background:#D9D1C5;border:1px solid var(--fm-border);display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;font-weight:600}
.fm-story-card{border-left:3px solid var(--fm-lemon);padding-left:24px!important}
.fm-article-card{border-top:1px solid var(--fm-border);padding-top:22px!important}

/* ---------- Assessment ---------- */
.fm-assessment-card{background:var(--fm-white)!important;border:1px solid var(--fm-border)!important;border-radius:var(--fm-radius-feature)!important;padding:34px!important}
.fm-assessment-options{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.fm-assessment-option{display:block;padding:14px 16px;border:1px solid var(--fm-border);border-radius:8px;background:transparent}

/* ---------- Learning method ---------- */
.fm-method-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;border-top:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22)}
.fm-method-item{padding:38px 34px!important;border-right:1px solid rgba(255,255,255,.22)}
.fm-method-item:last-child{border-right:0}
.fm-method-number{font-family:var(--fm-serif);font-size:46px;color:var(--fm-lemon);line-height:1}

/* ---------- Experience / gallery ---------- */
.fm-experience-grid{display:grid!important;grid-template-columns:1.35fr .65fr!important;grid-template-rows:repeat(2,260px)!important;gap:18px!important}
.fm-experience-main{grid-row:1/3!important;min-height:538px!important}
.fm-photo-tile{position:relative;overflow:hidden;background:#D8D1C5;border-radius:8px;display:flex!important;align-items:flex-end!important;padding:24px!important;min-height:250px!important}
.fm-photo-tile:before{content:"Foto dokumentasi asli";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#6E6A64;font-size:13px;background:linear-gradient(145deg,#D4CDC1,#EEE8DD)}
.fm-photo-tile>*{position:relative;z-index:1}

/* ---------- Special brand sections ---------- */
.fm-silent{background:var(--fm-black)!important;color:var(--fm-white)!important}
.fm-silent-gold{color:#C8A96B!important}
.fm-fit-panel{background:#F7F8F4!important;border:1px solid #DEE5DA!important;border-radius:var(--fm-radius-feature)!important;padding:42px!important}

/* ---------- CTA ---------- */
.fm-closing-cta{background:var(--fm-lemon)!important}
.fm-cta-row{display:grid!important;grid-template-columns:1fr auto!important;gap:40px!important;align-items:center!important}
.fm-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:999;background:var(--fm-white);border-top:1px solid var(--fm-border);padding:12px 18px;display:none;align-items:center;justify-content:space-between;gap:14px}

/* ---------- Minor utilities ---------- */
.fm-divider{height:1px;background:var(--fm-border);width:100%}
.fm-accent-line{width:64px;height:7px;background:var(--fm-lemon);margin-top:20px}
.fm-nowrap{white-space:nowrap}
.fm-no-shadow{box-shadow:none!important}

/* ---------- Elementor cleanups ---------- */
.fm-page .elementor-button{box-shadow:none}
.fm-page .elementor-widget-text-editor p:last-child{margin-bottom:0}
.fm-page .elementor-widget-heading{margin:0}

/* ---------- Tablet ---------- */
@media(max-width:1024px){
  .fm-display .elementor-heading-title,.fm-display{font-size:56px!important}
  .fm-h1 .elementor-heading-title,.fm-h1{font-size:48px!important}
  .fm-h2 .elementor-heading-title,.fm-h2{font-size:38px!important}
  .fm-h3 .elementor-heading-title,.fm-h3{font-size:28px!important}
  .fm-body-lg .elementor-widget-container,.fm-body-lg{font-size:18px!important}
  .fm-body .elementor-widget-container,.fm-body{font-size:16px!important}
  .fm-section{padding:84px 0!important}
  .fm-grid-2,.fm-grid-2-even{gap:36px!important}
  .fm-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .fm-footer-grid{grid-template-columns:repeat(2,1fr)!important}
}

/* ---------- Mobile ---------- */
@media(max-width:767px){
  .fm-display .elementor-heading-title,.fm-display{font-size:44px!important;line-height:1.08!important}
  .fm-h1 .elementor-heading-title,.fm-h1{font-size:40px!important}
  .fm-h2 .elementor-heading-title,.fm-h2{font-size:32px!important}
  .fm-h3 .elementor-heading-title,.fm-h3{font-size:26px!important}
  .fm-h4 .elementor-heading-title,.fm-h4{font-size:21px!important}
  .fm-body-lg .elementor-widget-container,.fm-body-lg{font-size:18px!important}
  .fm-body .elementor-widget-container,.fm-body{font-size:16px!important}
  .fm-section{padding:68px 0!important}
  .fm-section-tight{padding:54px 0!important}
  .fm-container,.fm-container-narrow,.fm-container-wide{width:min(calc(100% - 32px),100%)!important}
  .fm-grid-2,.fm-grid-2-even,.fm-grid-3,.fm-grid-4,.fm-footer-grid,.fm-cta-row{grid-template-columns:1fr!important;gap:28px!important}
  .fm-home-frame{min-height:400px;border-radius:4px 58px 4px 4px}
  .fm-header-row{gap:14px!important}
  .fm-nav-desktop{display:none}
  .fm-mobile-nav{display:block}
  .fm-universe-card{min-height:265px!important}
  .fm-method-grid{grid-template-columns:1fr!important}
  .fm-method-item{border-right:0;border-bottom:1px solid rgba(255,255,255,.22);padding:28px 0!important}
  .fm-method-item:last-child{border-bottom:0}
  .fm-experience-grid{grid-template-columns:1fr!important;grid-template-rows:auto!important}
  .fm-experience-main{grid-row:auto!important;min-height:420px!important}
  .fm-photo-tile{min-height:300px!important}
  .fm-btn-primary .elementor-button,.fm-btn-accent .elementor-button,.fm-btn-secondary .elementor-button,.fm-button{min-height:48px}
  .fm-site-footer{padding-top:64px!important}
}
