/* SoftPax public site — BASE structural theme (variable-driven).
   Colors & fonts come from :root variables injected by site/layout.blade.php
   (ThemeCatalog::cssVars). Every theme reuses this single file. */
:root{
  --c-bg:#faf8f5; --c-surface:#ffffff; --c-ink:#2b2622; --c-ink-2:#6b6157;
  --c-accent:#1f6f5c; --c-accent-d:#175545; --c-line:#e8e2d9; --c-gold:#b8995a; --c-footer:#211d19;
  --radius:14px; --maxw:1120px; --shadow:0 8px 30px rgba(40,32,24,.08);
  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --heading-font: var(--font);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--font);line-height:1.6;font-size:16px}
img{max-width:100%;display:block}
a{color:var(--c-accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--heading-font);line-height:1.2;letter-spacing:-.01em;margin:0 0 .5em}
.site-container{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--c-surface) 92%, transparent);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--c-line)}
.site-header .site-container{display:flex;align-items:center;gap:24px;height:72px}
.site-logo-text{font-family:var(--heading-font);font-weight:700;font-size:20px;color:var(--c-ink)}
.site-logo{max-height:44px}
.site-nav{display:flex;gap:20px;margin-left:auto;flex-wrap:wrap}
.site-nav a{color:var(--c-ink-2);font-size:15px;font-weight:500}
.site-nav a:hover{color:var(--c-accent);text-decoration:none}
.site-emergency-btn{background:var(--c-accent);color:#fff;padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px;white-space:nowrap}
.site-emergency-btn:hover{background:var(--c-accent-d);text-decoration:none}
.site-nav-login{border:1px solid var(--c-line);color:var(--c-ink-2);padding:9px 15px;border-radius:999px;font-weight:600;font-size:14px;white-space:nowrap}
.site-nav-login:hover{border-color:var(--c-accent);color:var(--c-accent);text-decoration:none}
.site-nav-cta{background:var(--c-gold);color:#1a1405;padding:10px 16px;border-radius:999px;font-weight:700;font-size:14px;white-space:nowrap}
.site-nav-cta:hover{filter:brightness(1.06);text-decoration:none}

/* Hero */
.block-hero{position:relative;background:linear-gradient(135deg,var(--c-accent) 0%,var(--c-accent-d) 100%);color:#fff;background-size:cover;background-position:center}
.block-hero::after{content:"";position:absolute;inset:0;background:rgba(10,14,22,.42)}
.block-hero .site-container{position:relative;z-index:1;padding:96px 22px;text-align:center;max-width:820px}
.block-hero h1{font-size:clamp(30px,5vw,52px);color:#fff}
.block-hero p{font-size:clamp(17px,2.4vw,21px);color:rgba(255,255,255,.92);margin:0 auto 28px;max-width:620px}

/* Hero slider (multiple background images + overlay text) */
.block-hero.hero-slider{display:grid;min-height:460px;padding:0;background:var(--c-accent-d)}
.block-hero.hero-slider::after{display:none}
.hero-slide{grid-area:1/1;position:relative;display:grid;align-items:center;opacity:0;transition:opacity .8s ease;
  background:linear-gradient(135deg,var(--c-accent),var(--c-accent-d));background-size:cover;background-position:center;pointer-events:none}
.hero-slide.is-active{opacity:1;pointer-events:auto}
.hero-slide::after{content:"";position:absolute;inset:0;background:rgba(10,14,22,.48)}
.hero-slide .site-container{position:relative;z-index:1;padding:88px 22px;text-align:center;max-width:820px;margin:0 auto}
.hero-dots{position:absolute;bottom:18px;left:0;right:0;z-index:2;display:flex;gap:8px;justify-content:center}
.hero-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0}
.hero-dot.is-active{background:#fff}
.btn-cta{display:inline-block;background:var(--c-gold);color:#1a1405;font-weight:700;padding:14px 28px;border-radius:999px;border:0;cursor:pointer;font-size:16px}
.btn-cta:hover{filter:brightness(1.06);text-decoration:none}

/* Sections */
section{padding:64px 0}
.block-text .site-container{max-width:780px;text-align:center}
.block-text h2{font-size:clamp(24px,3.5vw,34px)}
.block-text-body{color:var(--c-ink-2);font-size:18px}

/* Plans */
.block-plans{background:var(--c-surface)}
.block-plans h2{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:40px}
.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.plan-card{background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.plan-card h3{font-size:21px;color:var(--c-accent)}
.plan-price{font-size:30px;font-weight:800;margin:6px 0 12px}
.plan-price span{font-size:15px;font-weight:500;color:var(--c-ink-2)}
.plan-card p{color:var(--c-ink-2)}
.plan-features{list-style:none;padding:0;margin:14px 0;flex:1;display:flex;flex-direction:column;gap:7px}
.plan-features li{font-size:14px;color:var(--c-ink);display:flex;gap:8px;align-items:flex-start}
.plan-features li::first-letter{color:var(--c-accent);font-weight:700}
.plan-card form{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.plan-card input,.site-form input,.site-form textarea{padding:11px 13px;border:1px solid var(--c-line);border-radius:10px;font-size:15px;font-family:inherit;background:#fff}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* License tiers (SoftPax SaaS sales) */
.block-license-tiers{background:var(--c-surface)}
.lt-heading{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:8px}
.lt-sub{text-align:center;color:var(--c-ink-2);max-width:640px;margin:0 auto 40px}
.lt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;align-items:start}
.lt-card{position:relative;background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.lt-card--featured{border-color:var(--c-accent);border-width:2px;transform:translateY(-6px)}
.lt-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--c-accent);color:#fff;font-size:12px;font-weight:700;padding:4px 14px;border-radius:999px;white-space:nowrap}
.lt-name{font-size:22px;color:var(--c-accent)}
.lt-price{font-size:18px;font-weight:700;margin:4px 0 16px}
.lt-limits{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px 16px}
.lt-limits li{font-size:13px;color:var(--c-ink-2)}
.lt-limits strong{color:var(--c-ink);font-size:15px}
.lt-features{list-style:none;padding:0;margin:0 0 16px;flex:1;display:flex;flex-direction:column;gap:7px}
.lt-features li{font-size:14px;color:var(--c-ink)}
.lt-meta{font-size:12.5px;color:var(--c-ink-2);border-top:1px solid var(--c-line);padding-top:12px;margin-bottom:14px;display:flex;flex-direction:column;gap:4px}
.lt-meta span{font-weight:700;color:var(--c-ink)}
.lt-card form{display:flex;flex-direction:column;gap:8px;margin-top:auto}
.lt-card input{padding:11px 13px;border:1px solid var(--c-line);border-radius:10px;font-size:15px;font-family:inherit;background:#fff}

/* Features grid (reusable) */
.block-features{background:var(--c-bg)}
.feat-heading{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:8px}
.feat-sub{text-align:center;color:var(--c-ink-2);max-width:640px;margin:0 auto 40px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.feat-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:26px;text-align:center}
.feat-icon{font-size:34px;display:block;margin-bottom:12px}
.feat-title{font-size:18px;color:var(--c-accent);margin-bottom:8px}
.feat-text{font-size:14.5px;color:var(--c-ink-2);line-height:1.55}

/* CTA */
.block-cta{background:linear-gradient(135deg,var(--c-ink),var(--c-footer));color:#fff;text-align:center}
.block-cta h2{font-size:clamp(24px,3.5vw,34px)}
.btn-cta-large{display:inline-block;background:var(--c-gold);color:#1a1405;font-weight:700;padding:16px 34px;border-radius:999px;font-size:17px;margin-top:8px}
.btn-cta-large:hover{filter:brightness(1.06);text-decoration:none}

/* Contact form block */
.block-contact_form .site-container{max-width:920px}
.block-contact_form h2{text-align:center}
.contact-sub{text-align:center;color:var(--c-ink-2);margin:-8px 0 28px}
.contact-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius)}
.contact-info > div{display:flex;flex-direction:column;gap:2px;font-size:15px;color:var(--c-ink)}
.contact-info span{font-size:12px;font-weight:600;color:var(--c-ink-2);text-transform:uppercase;letter-spacing:.03em}
.contact-info a{color:var(--c-accent);font-weight:600}
.site-form{display:flex;flex-direction:column;gap:12px;background:var(--c-surface);padding:28px;border-radius:var(--radius);border:1px solid var(--c-line);box-shadow:var(--shadow)}
.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cf{display:flex;flex-direction:column;gap:4px}
.cf label{font-size:12px;font-weight:600;color:var(--c-ink-2)}
.form-ok{color:var(--c-accent);font-weight:600}.form-err{color:#b4231f;font-weight:600}
.site-form button{align-self:flex-start}
@media(max-width:680px){ .contact-wrap{grid-template-columns:1fr} .contact-row{grid-template-columns:1fr} }

/* FAQ */
.block-faq .site-container{max-width:780px}
.block-faq h2{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:28px}
.faq-item{border-bottom:1px solid var(--c-line);padding:0}
.faq-item summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:600;font-size:16px;color:var(--c-ink);display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--c-accent);font-weight:700;font-size:22px;line-height:1}
.faq-item[open] summary::after{content:"−"}
.faq-answer{color:var(--c-ink-2);font-size:15px;padding:0 0 18px;line-height:1.65}
.faq-item strong{display:block;margin-bottom:6px}

/* Memorial / obituaries */
.block-obituaries{background:var(--c-surface)}
.block-obituaries h2,.memorial-index h1,.blog-index h1{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:36px}
.obituaries-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-bottom:24px}
.obituary-card{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:22px;text-align:center;color:var(--c-ink);box-shadow:var(--shadow)}
.obituary-card:hover{text-decoration:none;border-color:var(--c-accent)}
.obituary-card strong{font-size:18px}
.obituary-card span{color:var(--c-ink-2);font-size:14px}
.candle-count{color:var(--c-gold)!important;font-weight:600}
.memorial-index,.blog-index,.blog-post,.memorial-show{padding:56px 0}
.memorial-show .site-container,.blog-post .site-container{max-width:780px}

/* Blog */
.block-posts h2{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:36px}
.posts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-bottom:24px}
.post-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:24px;color:var(--c-ink);box-shadow:var(--shadow)}
.post-card:hover{text-decoration:none;border-color:var(--c-accent)}
.post-card strong{font-size:19px;color:var(--c-accent)}
.post-card p{color:var(--c-ink-2);margin:0}
.post-card time{color:var(--c-ink-2);font-size:13px}
.block-link-more{display:inline-block;margin-top:8px;font-weight:600}

/* Memorial detail: candle + condolences */
.candle-btn{background:var(--c-gold);color:#1a1405;border:0;border-radius:999px;padding:12px 22px;font-weight:700;cursor:pointer}
.condolence-form{display:flex;flex-direction:column;gap:10px;margin:24px 0}
.condolence-form input,.condolence-form textarea{padding:11px 13px;border:1px solid var(--c-line);border-radius:10px;font-family:inherit}
.condolence{background:#fff;border:1px solid var(--c-line);border-radius:12px;padding:16px;margin-bottom:12px}
.condolence strong{color:var(--c-accent)}

/* Units / Áreas de Negócio */
.block-units h2{text-align:center;font-size:clamp(24px,3.5vw,34px);margin-bottom:36px}
.units-grid{display:flex;flex-direction:column;gap:18px}
.unit-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:row;overflow:hidden}
.unit-photo{width:300px;flex:0 0 300px;min-height:200px;background-size:cover;background-position:center}
.unit-body{flex:1;padding:24px;display:flex;flex-direction:column;gap:6px;justify-content:center}
@media(max-width:680px){ .unit-card{flex-direction:column} .unit-photo{width:auto;flex:none;height:180px} }
.unit-card strong{font-size:18px;color:var(--c-accent)}
.unit-card p{margin:0;color:var(--c-ink-2);font-size:14px}
.unit-card .unit-map{margin-top:6px;font-weight:600}
.unit-tags{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}
.unit-tag{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--c-bg);border:1px solid var(--c-line);color:var(--c-ink-2)}

/* Footer */
.site-footer{background:var(--c-footer);color:rgba(255,255,255,.78);padding:48px 0 28px;margin-top:40px}
.site-footer a{color:rgba(255,255,255,.78)}
.site-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
.site-footer-grid strong{display:block;margin-bottom:8px;color:#fff}
.site-footer-nav{display:flex;flex-direction:column;gap:6px}
.site-footer-nav a{color:rgba(255,255,255,.78);font-size:14px}
.site-footer-nav a:hover{color:#fff}
.site-social{display:flex;flex-direction:column;gap:8px}
.site-footer-legal{margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:rgba(255,255,255,.5);text-align:center}

/* Preview banner */
.site-preview-banner{background:var(--c-gold);color:#1a1405;text-align:center;padding:8px;font-weight:600}

@media (max-width:680px){
  .site-header .site-container{height:auto;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:12px}
  .site-nav{margin-left:0;width:100%}
  .site-footer-grid{grid-template-columns:1fr}
  .site-social{align-items:flex-start}
}
