/*
 * Apóstolos dos Últimos Tempos | Direção de arte Sacro Patrimônio — v0.3.4
 * Camada visual, deliberadamente isolada: não altera HTML dinâmico, permissões,
 * autenticação, banco de dados, Stripe, cronogramas ou funcionalidades.
 * Referências: UI UX Pro Max + Design Motion Principles, fornecidas pelo usuário.
 * Inspiração arquitetônica católica clássica; sem alegação de vínculo institucional
 * com o Vaticano ou com a Santa Sé.
 */
:root {
  --navy:#102B4B;
  --navy-deep:#08192E;
  --blue:#264C78;
  --ivory:#F4EFE4;
  --cream:#FFFCF6;
  --gold:#AF863D;
  --gold-bright:#E4C488;
  --graphite:#2A3340;
  --muted:#5F6872;
  --border:#DCCDB2;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Source Sans 3','Lato',Arial,sans-serif;
  --roman:'Cinzel',Georgia,serif;
  --wine:#653B36;
  --paper:#F9F6EE;
  --heritage-shadow:0 1px 0 rgba(255,255,255,.86) inset,0 4px 22px rgba(44,35,20,.055),0 20px 64px rgba(44,35,20,.035);
  --heritage-ease:cubic-bezier(.22,1,.36,1);
}
html {scroll-padding-top:80px;}
body {background:#F8F4EB;color:#29374B;font-family:var(--sans);font-size:16px;line-height:1.65;font-weight:400;}
h1,h2,h3,h4 {color:var(--navy-deep);}
h1,h2 {font-family:var(--serif);font-weight:600;letter-spacing:-.024em;}
h3 {font-family:var(--serif);font-weight:700;letter-spacing:-.014em;}
p {line-height:1.75;}
::selection {background:#e6d5ac;color:#172f49;}
:focus-visible {outline:3px solid #99712D!important;outline-offset:3px!important;}
a,button { -webkit-tap-highlight-color:transparent;}
.wrap {width:min(1220px,calc(100% - 56px));}
.intro-kicker,.overline,.mini-kicker,.section-meta {color:#875B23;font-family:var(--roman);font-weight:600;letter-spacing:.16em;font-size:10px;line-height:1.8;}
.pill {font-family:var(--sans);font-size:11px;letter-spacing:.07em;border:1px solid #e6d6b6;background:#f8eed9;color:#6b4e2e;border-radius:3px;font-weight:700;}
.muted {color:var(--muted);}
.text-link {font-weight:700;color:#765324;}
.micro-note {color:#5F6872;font-size:12px;}

/* Buttons like engraved brass and polished dark enamel: subtle, never flashy. */
.btn {min-height:48px;border-radius:4px;padding:12px 22px;font-size:13px;font-weight:700;letter-spacing:.025em;transition:transform .22s var(--heritage-ease),box-shadow .22s var(--heritage-ease),background-color .22s var(--heritage-ease),border-color .22s var(--heritage-ease);}
.btn:hover:not(:disabled) {transform:translateY(-2px);}
.btn:active:not(:disabled) {transform:translateY(0);}
.btn-gold {background:linear-gradient(180deg,#E9CD92 0%,#CCAB68 48%,#B98F49 100%);color:#172536;border:1px solid #AA823F;box-shadow:inset 0 1px rgba(255,255,255,.56),0 5px 12px rgba(55,35,8,.12);}
.btn-gold:hover:not(:disabled) {box-shadow:inset 0 1px #fff9,0 9px 22px #84662932;}
.btn-navy {background:#122D4C;color:#FFF9EF;border:1px solid #173C64;box-shadow:0 5px 16px #122D4C1C;}
.btn-outline,.btn-outline-light {border:1px solid #D9B979;border-radius:4px;}
.btn-outline-dark {border:1px solid #9F7B43;color:#17314C;border-radius:4px;background:#FFFCF5;}
.btn-outline-dark:hover:not(:disabled){background:#F8ECD3;}

/* Public masthead — ecclesiastical editorial rather than SaaS navigation. */
.site-header {background:linear-gradient(90deg,#071728,#102E4F 58%,#0A2038);min-height:92px;border-bottom:3px double #A47B3D;box-shadow:0 8px 28px #0310201A;}
.site-nav {min-height:89px;}
.brand {gap:13px;font-family:var(--roman);font-size:12px;letter-spacing:.048em;line-height:1.5;}
.brand img {width:62px;height:62px;border-radius:6px;object-fit:contain;border:1px solid #CFB37286;box-shadow:0 0 0 3px #102F4A;}
.brand-inverted{color:#FCF5E7;}
.topnav {gap:32px;}
.topnav a {font-weight:600;font-size:13px;letter-spacing:.015em;color:#F1ECE1;}
.topnav a:hover {color:#F1D298;}
.nav-actions .btn {font-size:12px;padding-inline:18px;min-height:43px;}
.mobile-menu-btn {border-color:#BB9655;border-radius:3px;min-height:44px;min-width:44px;}

/* Marian hero — original approved image retained, given breathing room. */
.hero {background:radial-gradient(ellipse at 95% 30%,#FFFBF2,#F0E8D8 89%);border-bottom:1px solid #C8B48A;}
.hero::before {content:'';position:absolute;inset:15px;z-index:2;border:1px solid #AA814B50;pointer-events:none;}
.hero::after {content:'';position:absolute;right:34px;top:37px;width:65px;height:65px;border-top:1px solid #A88C5B7D;border-right:1px solid #A88C5B7D;pointer-events:none;z-index:2;}
.hero-background {background-color:transparent;background-repeat:no-repeat;}
.hero-inner {min-height:665px;grid-template-columns:43% minmax(0,57%);}
.hero-copy {padding:74px 36px 72px 4px;position:relative;}
.hero-copy .intro-kicker {font-size:10px;letter-spacing:.2em;color:#89612D;display:inline-flex;align-items:center;gap:12px;}
.hero-copy .intro-kicker::before {content:'';width:26px;height:1px;background:#A7864F;display:inline-block;}
.hero-copy h1 {font-family:var(--serif);font-weight:600;font-size:clamp(50px,5.1vw,76px);line-height:1.08;letter-spacing:-.035em;max-width:720px;margin:19px 0 25px;text-wrap:balance;}
.hero-copy h1 em {font-style:italic;font-weight:600;color:#A97C35;}
.hero-copy p {max-width:530px;font-size:18px;line-height:1.8;color:#465467;margin-bottom:31px;}
.hero-actions {gap:13px;margin-bottom:23px;}
.hero-foot {font-weight:600;color:#585A5B;font-size:12px;}
.hero-foot .icon {color:#916B32;}

/* The six pillars read as carved names on a light stone entablature. */
.feature-ribbon {margin:-27px auto 20px;border-radius:5px;min-height:134px;padding:18px 12px;background:linear-gradient(180deg,#FFFCF5,#F4EBDD);border:1px solid #D6C39F;box-shadow:var(--heritage-shadow);}
.feature-ribbon::before {content:'';position:absolute;inset:6px;border:1px solid #E6D7B9;pointer-events:none;}
.feature-ribbon>div {gap:13px;color:#A47833;border-right:1px solid #DFD0B6;}
.feature-ribbon span {font-family:var(--roman);font-weight:600;letter-spacing:.01em;font-size:12px;color:#18344D;line-height:1.5;}
.feature-ribbon svg {stroke-width:1.6;}

/* Quiet ivory surfaces, editorial headings, and gold rules. */
.section {padding:104px 0;}
.section h2 {font-size:clamp(39px,4.1vw,58px);line-height:1.05;letter-spacing:-.03em;margin:13px auto 23px;max-width:900px;text-wrap:balance;}
.section-lead {color:#57606B;font-size:17px;line-height:1.8;max-width:760px;margin-bottom:46px;}
.section .intro-kicker {font-size:10px;}
.section>.wrap>.intro-kicker,.section>.wrap>h2,.section>.wrap>.section-lead {text-align:center;}
.section>.wrap>.intro-kicker::before {content:'✦';display:block;margin-bottom:4px;font-size:14px;color:#A7854E;line-height:1.2;}
.three-grid {gap:22px;}
.info-tile,.module-card,.quick-faq-grid article {background:#FFFCF6;border:1px solid #E1D3B9;border-top:2px solid #CAA768;border-radius:4px;box-shadow:var(--heritage-shadow);}
.info-tile {padding:34px 34px 31px;min-height:235px;}
.info-tile h3 {font-family:var(--serif);font-size:25px;line-height:1.15;margin:22px 0 12px;}
.info-tile p {color:#5E6973;font-size:15px;}
.info-tile>.icon {color:#967239;}
.section-tint {background:radial-gradient(ellipse at 40% 0%,#F9F3E7 0%,#EBE2D2 100%);border-top:1px solid #DCCCAD;border-bottom:1px solid #DCCCAD;}
.module-grid {gap:17px;}
.module-card {padding:28px 24px 23px;min-height:240px;transition:box-shadow .23s var(--heritage-ease),transform .23s var(--heritage-ease),border-color .23s var(--heritage-ease);}
.module-card:hover {transform:translateY(-3px);border-color:#B78E4C;box-shadow:0 16px 36px #3E342015;}
.module-icon {background:linear-gradient(145deg,#F9EFDD,#EEDFC3);border-radius:50%;width:52px;height:52px;color:#966F33;border:1px solid #E4CFA6;}
.module-card h3 {font-size:24px;font-family:var(--serif);margin:20px 0 8px;line-height:1.08;}
.module-card p {font-size:14px;color:#606A73;line-height:1.65;}
.module-next {color:#8D652D;font-weight:700;}
.split-section {gap:clamp(30px,4.5vw,72px);}
.quote-poster {border-radius:4px;border:1px solid #CBAD72;box-shadow:var(--heritage-shadow);}
.quote-poster::after {content:'';position:absolute;inset:9px;border:1px solid #CBA7666E;pointer-events:none;}
.quote-overlay p {font-size:27px;line-height:1.35;}
.split-copy h2 {font-size:clamp(38px,3.3vw,49px);line-height:1.1;}
.split-copy p {color:#566574;font-size:16px;}
.inline-feature {font-size:15px;}
.section-price {background:linear-gradient(120deg,#F9F3E9,#F4EBDE);border-top:1px solid #E8DCC9;}
.price-wrap {gap:54px;}
.price-wrap h2 {font-size:clamp(37px,3.8vw,53px);}
.price-wrap p {color:#586575;font-size:16px;}
.transparency {border-left:2px solid #A78045;background:#FFFCF6;color:#515969;padding:15px 19px;border-radius:0;}
.price-card {background:linear-gradient(155deg,#FFFEF9,#F7F0E4);border:1px solid #CBB180;border-radius:5px;padding:37px 30px;box-shadow:0 3px 0 #FDF5E8 inset,0 22px 60px #54442119;position:relative;}
.price-card::before {content:'';inset:8px;position:absolute;border:1px solid #E9D7B8;pointer-events:none;}
.price-row strong {font-size:53px;font-weight:600;}
.price-card h3 {font-size:25px;}
.price-card p {font-size:14px;}
.invite-cta {background:radial-gradient(ellipse at 50% 0%,#1A456B,#091A31 77%);border-top:4px double #BE985A;border-bottom:4px double #BE985A;position:relative;}
.invite-cta::before {content:'✦';display:block;font-size:29px;color:#E2C18B;margin-bottom:4px;}
.invite-cta h2 {font-size:clamp(36px,4vw,53px);color:#FAEED7;max-width:900px;}
.invite-cta p {color:#EBE5D8;font-size:17px;}
.footer {background:#07182B;border-top:1px solid #C3A166;padding:41px 0;}
.footer-inner p {color:#EDE1CB;}

/* Member area: a digital sacristy / library, readable and practical. */
.is-app {background:#F7F3EB;}
.app-shell {background:#F7F3EB;}
.sidebar {background:linear-gradient(170deg,#07172A 0%,#102F50 55%,#06182B 100%);box-shadow:inset -2px 0 #AD824A4D;scrollbar-color:#856B44 transparent;}
.side-logo {padding:25px 20px 26px;border-bottom:3px double #B99B675C;}
.side-logo .brand {font-family:var(--roman);font-size:11px;letter-spacing:.03em;}
.side-logo .brand img {width:63px;height:63px;}
.side-label {color:#D2C09D;font-family:var(--roman);font-size:10px;letter-spacing:.13em;font-weight:500;padding:24px 22px 11px;}
.sidenav {padding:0 11px 20px;}
.side-link {font-size:13px;font-weight:600;min-height:44px;padding:11px 14px;border-radius:3px;color:#F3EEE6;transition:background-color .16s var(--heritage-ease),color .16s var(--heritage-ease);}
.side-link>.icon {color:#D8B371;}
.side-link:hover {background:#FCF7EC17;color:#FFFBF2;}
.side-link.active {background:linear-gradient(90deg,#E4C68E,#B78E4C);color:#10243A;box-shadow:inset 3px 0 #F9E5BE,0 2px 12px #00000019;}
.side-link.active>.icon {color:#142E4D;}
.side-footer {font-family:var(--serif);font-size:18px;color:#DFC18A;}
.side-footer span {color:#F0DFC2;}
.app-main {background:radial-gradient(ellipse at 92% 0%,#FFFAF1 0%,#F8F5EE 48%,#F5F0E6 100%);}
.app-header {height:83px;background:rgba(254,252,247,.96);border-bottom:2px solid #D8C49D;padding-inline:clamp(20px,3vw,46px);}
.breadcrumb {font-size:13px;color:#536174;}
.demo-tag {color:#79582B;background:#F5EAD1;border:1px solid #E2CDA4;border-radius:3px;}
.avatar {border-radius:50%;background:#F5E8D2;border:1px solid #CEB78B;width:40px;height:40px;color:#294B69;}
.page-content {width:min(1260px,100%);padding:36px clamp(18px,3vw,48px) 82px;}
.welcome-greeting {font-family:var(--serif);font-size:35px;font-weight:700;letter-spacing:-.018em;line-height:1.1;}
.page-topline p {font-size:14px;color:#616A75;}
.today-tag {color:#685D50;font-size:13px;}
.dashboard-hero {height:265px;background:linear-gradient(110deg,#071A30 0%,#15385B 61%,#AD8754 100%);border:1px solid #BD9857;border-radius:5px;padding:40px 43px;box-shadow:0 18px 48px #2D271B20;}
.dashboard-hero::before {content:'';position:absolute;inset:10px;border:1px solid #D3B88378;pointer-events:none;z-index:1;}
.dashboard-hero:after {background:radial-gradient(circle at 82% 50%,#E3BD8452,transparent 47%);}
.dashboard-hero>div {max-width:68%;}
.dashboard-hero .mini-kicker {font-size:10px;color:#EBD1A0;}
.dashboard-hero h1 {font-family:var(--serif);font-size:49px;line-height:1.05;letter-spacing:-.017em;font-weight:600;margin:11px 0 10px;color:#FFFBF0;}
.dashboard-hero p {font-family:var(--serif);font-size:21px;color:#EADCC3;}
.dashboard-hero img {height:382px;width:206px;right:37px;top:-66px;}
.dashboard-hero small {font-size:12px;color:#F3E6CB;}
.dashboard-columns {gap:22px;margin-top:24px;}
.panel {background:#FFFDFA;border:1px solid #DFD0B8;border-radius:5px;box-shadow:var(--heritage-shadow);}
.panel.padded {padding:29px;}
.panel-title h2,.right-panels h2 {font-family:var(--serif);font-size:26px;font-weight:700;}
.tasks-panel {padding:27px 27px 20px;}
.task-row {min-height:71px;border-bottom:1px solid #EBE2D4;}
.task-text strong {font-size:14px;color:#263E55;}
.task-text small {font-size:12px;color:#596775;}
.checkmark {border-color:#A88C5A;border-radius:3px;}
.check-input:checked+.checkmark {background:#153557;border-color:#153557;}
.panel-footnote {color:#596370;font-size:12px;}
.short-panel {padding:27px;}
.commitment {padding:15px 0;}
.commitment strong {font-size:13px;}
.commitment span {font-size:12px;color:#65727A;}
.virtue-panel {background:linear-gradient(140deg,#FFF7E7,#F2E5CE);border-top:2px solid #BD975F;padding:26px;}
.virtue-panel h3 {font-size:31px;}
.virtue-panel p {font-size:13px;}
.dashboard-tiles {margin-top:32px;}
.dashboard-tiles h2 {font-size:30px;font-weight:700;}
.tiles-grid {gap:15px;}
.tile {border-radius:4px;background:#FFFCF7;min-height:99px;padding:21px;border:1px solid #E1D1B8;border-top:2px solid #C8A36A;transition:transform .2s var(--heritage-ease),box-shadow .2s var(--heritage-ease),border-color .2s var(--heritage-ease);}
.tile:hover {transform:translateY(-2px);box-shadow:0 10px 22px #3B2C1212;border-color:#B38C50;}
.tile strong {font-family:var(--serif);font-size:18px;font-weight:700;line-height:1.2;}
.page-heading h1 {font-size:clamp(35px,3.2vw,49px);font-weight:600;line-height:1.07;}
.page-heading p {font-size:15px;color:#586777;}
.section-banner {background:linear-gradient(100deg,#FFFBF2,#EEE1C8);border-radius:4px;border:1px solid #D7C5A8;padding:30px 34px;}
.section-banner h2 {font-size:33px;font-weight:600;}
.section-banner p {font-size:14px;}
.section-banner.banner-dark {background:linear-gradient(110deg,#0C2A4C,#1E476C);border-color:#BC9B63;}
.grid-two p {color:#536677;font-size:15px;}
.grid-two .panel h2 {font-size:28px;line-height:1.16;}
.guide-note,.tip,.choice-row,.step-card,.stage,.tabs button,.duration-switch button {border-radius:4px;}
.auth-main,.welcome-bg,.legal-main {background:radial-gradient(ellipse at top,#FCF7ED,#EDE2CF);}
.auth-card,.welcome-card {background:#FFFDFA;border:1px solid #D6BF94;border-radius:5px;box-shadow:0 18px 65px #4A3B2318;}
.auth-card h1,.welcome-card h1 {font-family:var(--serif);font-size:40px;line-height:1.1;}
.field, input.field, textarea.field, select.field {border-radius:4px;border-color:#CCBFA9;background:#FFFEFC;min-height:44px;}
.field-label {font-weight:600;color:#283A4D;}
.choice,.faq-item {border-radius:4px;}
.faq-item summary {font-weight:700;}
.toast {border-radius:4px;}

/* Motion: brief arrival for the rare hero opening, quick feedback for actions. */
@keyframes sacredArrival {
  from {opacity:0;transform:translateY(8px);filter:blur(2px);}
  to {opacity:1;transform:translateY(0);filter:blur(0);}
}
.hero-copy h1 {animation:sacredArrival .65s var(--heritage-ease) both;}
.hero-copy>p {animation:sacredArrival .65s .09s var(--heritage-ease) both;}
.hero-actions {animation:sacredArrival .6s .15s var(--heritage-ease) both;}

/* Tablet — protect the approved Marian portrait from oversized typography. */
@media (min-width:721px) and (max-width:1120px) {
  .hero-inner {grid-template-columns:44% minmax(0,56%);min-height:590px;}
  .hero-copy {padding:52px 4px 56px 8px;}
  .hero-copy h1 {font-size:clamp(40px,4.8vw,55px);}
  .hero-copy p {font-size:16px;}
  .feature-ribbon span {font-size:10px;}
  .section {padding:82px 0;}
  .module-card h3 {font-size:21px;}
  .dashboard-hero h1 {font-size:41px;}
}
@media (min-width:721px) and (max-width:850px) {
  .topnav {gap:12px;}
  .nav-actions .btn {padding:10px 12px;}
  .site-nav .brand {font-size:10px;}
  .site-nav .brand img {width:52px;height:52px;}
}
/* Mobile — dedicated portrait above the editorial headline; no text over her face. */
@media(max-width:720px) {
  .wrap {width:calc(100% - 28px);}
  .site-header {min-height:73px;}
  .site-nav {min-height:70px;}
  .brand {font-size:10px;gap:9px;}
  .brand img {height:48px;width:48px;}
  .hero {background:#F4EFE4;}
  .hero::before {inset:9px 9px auto;height:382px;border:1px solid #B99C6E5C;}
  .hero::after {display:none;}
  .hero-background {background-position:left top;background-size:auto 405px;}
  .hero-inner {min-height:0;display:grid;grid-template-columns:minmax(0,1fr);}
  .hero-copy {margin:392px 0 0;padding:28px 15px 52px;text-align:center;border-radius:0;background:#F4EFE4;}
  .hero-copy .intro-kicker {font-size:9px;letter-spacing:.11em;justify-content:center;}
  .hero-copy .intro-kicker::before {width:16px;}
  .hero-copy h1 {font-size:clamp(40px,10vw,55px);line-height:1.05;margin:17px auto 23px;letter-spacing:-.038em;}
  .hero-copy p {font-size:16px;line-height:1.75;margin-inline:auto;}
  .hero-actions,.hero-foot {justify-content:center;}
  .hero-actions .btn {min-height:47px;}
  .feature-ribbon {margin:-6px auto 18px;border-radius:4px;min-height:0;padding:9px 3px;}
  .feature-ribbon::before {inset:4px;}
  .feature-ribbon>div {gap:5px;padding:14px 2px;}
  .feature-ribbon span {font-size:10px;}
  .section {padding:74px 0;}
  .section h2 {font-size:clamp(36px,9vw,50px);line-height:1.04;}
  .section-lead {font-size:16px;}
  .info-tile,.module-card {padding:26px 23px;min-height:0;}
  .info-tile h3,.module-card h3 {font-size:26px;}
  .module-grid {gap:12px;}
  .quote-overlay p {font-size:21px;}
  .split-copy h2,.price-wrap h2 {font-size:40px;}
  .price-card {padding:35px 27px;}
  .invite-cta h2 {font-size:38px;}
  .app-header {height:67px;}
  .page-content {padding:24px 15px 100px;}
  .welcome-greeting {font-size:31px;}
  .dashboard-hero {height:231px;padding:27px 26px;}
  .dashboard-hero::before {inset:7px;}
  .dashboard-hero>div {max-width:74%;}
  .dashboard-hero h1 {font-size:35px;}
  .dashboard-hero p {font-size:16px;}
  .dashboard-hero img {height:290px;width:150px;right:-10px;top:-29px;opacity:.64;}
  .panel-title h2,.right-panels h2 {font-size:25px;}
  .page-heading h1 {font-size:39px;}
  .section-banner {padding:24px 22px;}
  .section-banner h2 {font-size:30px;}
  .tiles-grid {gap:10px;}
  .tile {min-height:86px;padding:15px;}
  .tile strong {font-size:18px;}
  .app-mobile-tab {background:#FFFBF4;border-top:2px solid #CFB585;}
  .app-mobile-tab>* {min-height:54px;}
  .app-mobile-tab .on {color:#7A561F;}
  .auth-card,.welcome-card {border-radius:5px;}
  .auth-card h1,.welcome-card h1 {font-size:37px;}
}
@media(max-width:385px) {
  .hero-background {background-size:auto 375px;}
  .hero::before {height:355px;}
  .hero-copy {margin-top:361px;padding-inline:10px;}
  .hero-copy h1 {font-size:38px;}
  .feature-ribbon span {font-size:9px;}
  .dashboard-hero h1 {font-size:32px;}
  .tile strong {font-size:16px;}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
