/*
 * Nusatera presentation layer.
 * UI only. Business decisions stay in plugins/backend services.
 */

/* Header/cart/account presentation migrated from the live parent theme. */
.nusatera-cart-menu{position:relative}.nusatera-cart-menu summary{cursor:pointer;white-space:nowrap}.nusatera-cart-panel{position:absolute;right:0;top:calc(100% + 8px);width:320px;padding:16px;background:var(--wp--preset--color--base,#fff);border:1px solid currentColor;display:grid;gap:12px;z-index:30}.nusatera-cart-title{font-size:1.05em}.nusatera-cart-items{display:grid;gap:10px}.nusatera-cart-item{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;text-decoration:none}.nusatera-cart-thumb img{width:48px;height:48px;object-fit:cover;display:block}.nusatera-cart-item-copy{display:grid;gap:2px}.nusatera-cart-item-name{font-weight:600}.nusatera-cart-item-meta{font-size:.9em;opacity:.8}.nusatera-cart-summary{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid rgba(0,0,0,.18)}.nusatera-cart-action{display:block;padding:10px 12px;text-align:center;text-decoration:none;border:1px solid currentColor}.nusatera-cart-action-primary{background:#111;color:#fff;border-color:#111}.nusatera-cart-empty{display:grid;gap:4px;text-align:center;padding:8px 0}.nusatera-cart-empty span{opacity:.75}.nusatera-account-notifications{display:grid;gap:8px}.nusatera-notification-list{display:grid;gap:8px}.nusatera-no-notifications{font-size:.9em;opacity:.75}.nusatera-account nav hr{width:100%;margin:4px 0;border:0;border-top:1px solid currentColor;opacity:.2}@media (max-width:800px){.nusatera-cart-panel{position:fixed;left:16px;right:16px;top:72px;width:auto;max-height:70vh;overflow:auto}}

/* Global footer presentation migrated from the live parent theme. */
.wp-site-blocks{min-height:100vh;display:flex;flex-direction:column}.wp-site-blocks>.wp-block-template-part:last-child{margin-top:auto}
.nusatera-foundation-footer{border-top:1px solid currentColor;margin-top:24px;margin-bottom:0}
.nusatera-footer-inner{max-width:var(--wp--style--global--wide-size,1200px);margin:0 auto;padding:20px 24px 8px;display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,4fr) minmax(250px,2fr);gap:20px;align-items:start}
.nusatera-footer-brand p,.nusatera-stay-connected p{margin:.35em 0}
.nusatera-footer-nav-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.nusatera-footer-nav-grid nav,.nusatera-socials,.nusatera-footer-bottom nav{display:grid;gap:6px}
.nusatera-footer-nav-grid a,.nusatera-socials a,.nusatera-footer-bottom a{text-decoration:none}
.nusatera-stay-connected{display:grid;grid-template-columns:1fr;gap:10px;border:0;padding:0}
.nusatera-newsletter-form{display:grid;gap:8px}
.nusatera-newsletter-form input[type=email]{width:100%;box-sizing:border-box;padding:7px 8px}
.nusatera-newsletter-form fieldset{display:flex;flex-wrap:wrap;gap:8px 10px;border:0;padding:0;margin:0}
.nusatera-newsletter-form legend{width:100%;margin-bottom:3px}
.nusatera-consent{font-size:.88em;line-height:1.35}
.nusatera-newsletter-form button{width:max-content;padding:7px 14px}
.nusatera-socials{grid-auto-flow:column;justify-content:start;gap:14px}
.nusatera-footer-bottom{grid-column:1/-1;border-top:1px solid rgba(0,0,0,.16);padding-top:10px;padding-bottom:0;display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center}
.nusatera-footer-bottom nav{grid-auto-flow:column;gap:14px}
.nusatera-footer-locale{white-space:nowrap;opacity:.8}
.nusatera-footer-bottom p{margin:0;justify-self:end;text-align:right}
@media(max-width:900px){.nusatera-footer-inner{grid-template-columns:1fr 2fr;gap:20px}.nusatera-footer-brand{grid-column:1}.nusatera-footer-nav-grid{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr))}.nusatera-stay-connected{grid-column:1/-1;grid-template-columns:minmax(180px,1fr) minmax(280px,2fr);gap:18px;border-top:1px solid rgba(0,0,0,.12);padding-top:16px}.nusatera-stay-connected .nusatera-socials{grid-column:1/-1}}
@media(max-width:640px){.nusatera-footer-inner{grid-template-columns:1fr;padding:18px 18px 8px}.nusatera-footer-brand,.nusatera-footer-nav-grid,.nusatera-stay-connected{grid-column:1}.nusatera-footer-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nusatera-stay-connected{grid-template-columns:1fr}.nusatera-footer-bottom{grid-template-columns:1fr;gap:8px}.nusatera-footer-bottom nav{grid-auto-flow:row}.nusatera-footer-locale{justify-self:start}.nusatera-footer-bottom p{justify-self:start;text-align:left}.nusatera-socials{grid-auto-flow:row}}
@media(max-width:420px){.nusatera-footer-nav-grid{grid-template-columns:1fr}}

/* Nusatera legal system: shared presentation only. */
:root{
      --nusatera-legal-wide:1340px;
      --nusatera-legal-sidebar:220px;
      --nusatera-legal-document:760px;
      --nusatera-legal-gap:48px;
      --nusatera-legal-gutter:24px;
      --nusatera-legal-hero-top:42px;
      --nusatera-legal-hero-bottom:34px;
      --nusatera-legal-section-top:34px;
      --nusatera-legal-section-bottom:48px;
      --nusatera-legal-accent:#f3f0ea;
      --nusatera-legal-border:rgba(0,0,0,.16);
    }

    /* Shared full-width shell. */
    .nusatera-policy-page,
    .nusatera-legal-page{width:100%;margin:0}

    .nusatera-policy-width,
    .nusatera-legal-width{
      width:100%;
      max-width:var(--nusatera-legal-wide)!important;
      margin-left:auto!important;
      margin-right:auto!important;
      padding-left:var(--nusatera-legal-gutter)!important;
      padding-right:var(--nusatera-legal-gutter)!important;
      box-sizing:border-box
    }

    /* Identical hero geometry across overview and every policy page. */
    .nusatera-policy-hero,
    .nusatera-legal-hero{
      background:var(--nusatera-legal-accent)!important;
      border-bottom:1px solid rgba(0,0,0,.12)!important;
      padding:var(--nusatera-legal-hero-top) 0 var(--nusatera-legal-hero-bottom)!important
    }

    .nusatera-policy-hero h1,
    .nusatera-legal-hero h1{
      font-size:clamp(2.3rem,4vw,4rem)!important;
      line-height:1.05!important;
      margin:.24em 0 .28em!important
    }

    .nusatera-policy-hero>div>p,
    .nusatera-legal-hero>div>p{
      max-width:760px!important;
      margin:.35em 0!important
    }

    .nusatera-policy-kicker,
    .nusatera-legal-kicker{
      font-size:.78rem!important;
      letter-spacing:.14em!important;
      font-weight:600!important
    }

    .nusatera-policy-meta{font-size:.86rem!important;opacity:.72}

    /* One two-column legal body grid everywhere. */
    .nusatera-policy-layout,
    .nusatera-legal-layout{
      display:grid!important;
      grid-template-columns:var(--nusatera-legal-sidebar) minmax(0,var(--nusatera-legal-document))!important;
      gap:var(--nusatera-legal-gap)!important;
      justify-content:start!important;
      align-items:start!important;
      padding-top:var(--nusatera-legal-section-top)!important;
      padding-bottom:var(--nusatera-legal-section-bottom)!important
    }

    .nusatera-policy-sidebar,
    .nusatera-legal-sidebar{
      width:auto!important;
      border-right:1px solid var(--nusatera-legal-border)!important;
      padding:0 22px 0 0!important;
      display:flex!important;
      flex-direction:column!important;
      justify-content:space-between!important;
      gap:40px!important;
      box-sizing:border-box
    }

    .nusatera-policy-nav,
    .nusatera-legal-sidebar nav{display:grid!important;gap:3px!important}

    .nusatera-policy-nav a,
    .nusatera-legal-sidebar nav a{
      display:block!important;
      padding:8px 9px!important;
      margin:0!important;
      text-decoration:none
    }

    .nusatera-policy-nav a.is-current,
    .nusatera-legal-sidebar nav a.is-current{
      background:var(--nusatera-legal-accent)!important;
      font-weight:600!important
    }

    .nusatera-policy-help,
    .nusatera-legal-help{font-size:.92rem!important}

    .nusatera-policy-help p,
    .nusatera-legal-help p{margin:.45em 0!important}

    .nusatera-policy-help a,
    .nusatera-legal-help a{font-weight:600!important}

    /* Standard policy reading column. */
    .nusatera-policy-document{
      width:100%!important;
      max-width:var(--nusatera-legal-document)!important;
      line-height:1.62!important;
      box-sizing:border-box
    }

    .nusatera-policy-document h2{
      font-size:1.35rem!important;
      line-height:1.125!important;
      margin:1.65em 0 .5em!important
    }

    .nusatera-policy-document h2:first-child{margin-top:0!important}
    .nusatera-policy-document p{margin:.55em 0 1em!important}
    .nusatera-policy-document ul{margin:.4em 0 1em!important;padding-left:1.25em!important}
    .nusatera-policy-document li{margin:.36em 0!important}

    .nusatera-policy-note{
      width:100%!important;
      box-sizing:border-box!important;
      border:1px solid rgba(0,0,0,.18)!important;
      background:#faf8f4!important;
      padding:14px 16px!important;
      margin:0 0 22px!important
    }

    /* Legal overview keeps cards, but shares the same shell geometry. */
    .nusatera-legal-content{
      width:100%!important;
      max-width:var(--nusatera-legal-document)!important;
      box-sizing:border-box
    }

    .nusatera-legal-content h2{
      font-size:clamp(2rem,3vw,3rem)!important;
      line-height:1.08!important;
      margin:.2em 0 .3em!important
    }

    .nusatera-legal-intro{
      max-width:760px!important;
      margin:0 0 28px!important
    }

    .nusatera-legal-cards{
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
      gap:12px!important
    }

    .nusatera-legal-card{
      min-width:0!important;
      min-height:220px!important;
      box-sizing:border-box!important
    }

    /* Remove block-template constraints that can shift individual policies. */
    .wp-block-post-title{display:none!important}
    main.wp-block-group{margin-top:0!important;margin-bottom:0!important}
    main.wp-block-group>.wp-block-group.alignfull{
      padding-top:0!important;
      padding-bottom:0!important;
      max-width:none!important
    }
    main.wp-block-group>.wp-block-group.alignfull>.wp-block-post-content{
      max-width:none!important
    }

    @media(max-width:1000px){
      .nusatera-legal-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    }

    @media(max-width:760px){
      .nusatera-policy-hero,
      .nusatera-legal-hero{padding:34px 0 28px!important}

      .nusatera-policy-layout,
      .nusatera-legal-layout{
        grid-template-columns:1fr!important;
        gap:24px!important;
        padding-top:24px!important
      }

      .nusatera-policy-sidebar,
      .nusatera-legal-sidebar{
        border-right:0!important;
        border-bottom:1px solid var(--nusatera-legal-border)!important;
        padding-right:0!important;
        padding-bottom:18px!important;
        gap:20px!important
      }

      .nusatera-policy-nav,
      .nusatera-legal-sidebar nav{
        grid-template-columns:repeat(2,minmax(0,1fr))!important
      }

      .nusatera-policy-help,
      .nusatera-legal-help{display:none!important}
    }

    @media(max-width:520px){
      .nusatera-policy-nav,
      .nusatera-legal-sidebar nav{grid-template-columns:1fr!important}

      .nusatera-policy-width,
      .nusatera-legal-width{
        padding-left:18px!important;
        padding-right:18px!important
      }

      .nusatera-legal-cards{grid-template-columns:1fr!important}
    }
