/* ========================================================================== 
   ADI YOGPEETH — SCHOOL POLICY
   Premium editorial / luxury wellness layout
   ========================================================================== */

:root {
    --policy-green: #123d32;
    --policy-green-deep: #08251f;
    --policy-green-dark: #0b2f27;
    --policy-green-soft: #eef4f0;
    --policy-gold: #c6a15b;
    --policy-gold-light: #dfc88e;
    --policy-cream: #faf8f3;
    --policy-white: #fff;
    --policy-ink: #1c2925;
    --policy-text: #46534e;
    --policy-muted: #73817b;
    --policy-border: rgba(18,61,50,.14);
    --policy-border-soft: rgba(18,61,50,.08);
    --policy-sidebar-width: 300px;
    --policy-gap: clamp(42px, 5.5vw, 82px);
    --policy-header-offset: 110px;
    --policy-radius: 3px;
    --policy-ease: 220ms ease;
}

/* HERO ------------------------------------------------------------------- */
.policy-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(340px, 47vh, 490px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--policy-green-deep);
}

.policy-hero__image,
.policy-hero__overlay { position: absolute; inset: 0; }
.policy-hero__image { z-index: -3; }
.policy-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 48%;
}
.policy-hero__overlay {
    z-index: -2;
    background: linear-gradient(90deg,rgba(5,27,22,.90),rgba(8,37,31,.72) 45%,rgba(8,37,31,.36));
}
.policy-hero__content {
    position: relative;
    z-index: 1;
    width: 100%;
    padding-block: clamp(55px,7vw,82px);
}
.policy-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 15px;
    color: var(--policy-gold-light);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .19em;
    line-height: 1.4;
    text-transform: uppercase;
}
.policy-eyebrow::before {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background: currentColor;
    opacity: .85;
}
.policy-hero h1 {
    max-width: 850px;
    margin: 0;
    color: var(--policy-white);
    font-size: clamp(2.9rem,6vw,5.4rem);
    font-weight: 500;
    line-height: .98;
    letter-spacing: -.045em;
}
.policy-hero h1 em,
.policy-principles h2 em,
.policy-contact h2 em {
    color: var(--policy-gold-light);
    font-style: italic;
    font-weight: 400;
}
.policy-hero__subtitle {
    margin: 18px 0 0;
    color: rgba(255,255,255,.88);
    font-size: clamp(.95rem,1.4vw,1.15rem);
    letter-spacing: .045em;
}
.policy-hero__intro {
    max-width: 650px;
    margin: 16px 0 0;
    color: rgba(255,255,255,.70);
    font-size: .94rem;
    line-height: 1.8;
}
.policy-hero__scroll {
    position: absolute;
    right: clamp(22px,5vw,70px);
    bottom: 26px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255,255,255,.55);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.policy-hero__scroll b { width: 38px; height: 1px; background: var(--policy-gold); }

/* POLICY EXPLORER ------------------------------------------------------- */
.policy-main {
    position: relative;
    background: linear-gradient(180deg,#fbfaf6 0%,var(--policy-cream) 100%);
    border-top: 1px solid rgba(255,255,255,.55);
}
.policy-explorer {
    display: grid;
    grid-template-columns: var(--policy-sidebar-width) minmax(0,1fr);
    align-items: stretch;
    gap: var(--policy-gap);
    padding-block: clamp(62px,7vw,94px) clamp(78px,8vw,112px);
}

/* The whole card is sticky — heading, navigation and ornament move together. */
.policy-sidebar {
    min-width: 0;
    align-self: stretch;
}
.policy-sidebar__sticky {
    position: sticky;
    top: var(--policy-header-offset);
    width: 100%;
    box-sizing: border-box;
    z-index: 10;
}

.policy-sidebar__heading {
    position: relative;
    padding: 25px 24px 22px;
    overflow: hidden;
    background: linear-gradient(145deg,#17483b 0%,var(--policy-green) 60%,#0d332a 100%);
    border: 1px solid rgba(198,161,91,.28);
    border-bottom: 0;
}
.policy-sidebar__heading::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 58px;
    height: 3px;
    background: var(--policy-gold);
}
.policy-sidebar__heading::after {
    content: "";
    position: absolute;
    right: -42px;
    bottom: -58px;
    width: 145px;
    height: 145px;
    border: 1px solid rgba(223,200,142,.13);
    border-radius: 50%;
}
.policy-sidebar__eyebrow {
    position: relative;
    z-index: 1;
    margin: 0 0 7px;
    color: var(--policy-gold-light);
    font-size: .61rem;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.policy-sidebar__heading h2 {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--policy-white);
    font-size: clamp(1.55rem,2.3vw,2rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.025em;
}
.policy-sidebar__heading h2 em { color: var(--policy-gold-light); font-style: italic; font-weight: 400; }
.policy-sidebar__hint {
    position: relative;
    z-index: 1;
    margin: 10px 0 0;
    color: rgba(255,255,255,.54);
    font-size: .68rem;
    letter-spacing: .035em;
}

.policy-nav {
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: var(--policy-white);
    border: 1px solid var(--policy-border);
    border-top: 0;
    box-shadow: 0 16px 42px rgba(8,37,31,.055);
}
.policy-nav__item {
    position: relative;
    display: grid;
    grid-template-columns: 34px minmax(0,1fr) 18px;
    align-items: center;
    width: 100%;
    min-height: 62px;
    margin: 0;
    padding: 12px 17px;
    border: 0;
    border-bottom: 1px solid var(--policy-border-soft);
    background: var(--policy-white);
    color: var(--policy-text);
    cursor: pointer;
    text-align: left;
    transition: background-color var(--policy-ease),color var(--policy-ease),padding var(--policy-ease);
}
.policy-nav__item:last-child { border-bottom: 0; }
.policy-nav__item::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--policy-gold);
    transform: scaleY(0);
    transition: transform var(--policy-ease);
}
.policy-nav__item:hover { padding-left: 21px; background: var(--policy-green-soft); color: var(--policy-green); }
.policy-nav__item:focus-visible { z-index: 2; outline: 2px solid var(--policy-gold); outline-offset: -2px; }
.policy-nav__item.is-active { background: var(--policy-green); color: var(--policy-white); }
.policy-nav__item.is-active::before { transform: scaleY(1); }
.policy-nav__number { color: var(--policy-gold); font-size: .63rem; font-weight: 800; letter-spacing: .08em; }
.policy-nav__item.is-active .policy-nav__number { color: var(--policy-gold-light); }
.policy-nav__label { min-width: 0; padding-right: 7px; font-size: .83rem; font-weight: 600; line-height: 1.32; }
.policy-nav__arrow { color: #89948f; font-size: .95rem; line-height: 1; text-align: right; transition: transform var(--policy-ease),color var(--policy-ease); }
.policy-nav__item:hover .policy-nav__arrow,.policy-nav__item.is-active .policy-nav__arrow { color: var(--policy-gold-light); }
.policy-nav__item.is-active .policy-nav__arrow { transform: translateX(3px); }

.policy-sidebar__ornament {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 17px 20px;
    background: var(--policy-white);
    border: 1px solid var(--policy-border);
    border-top: 0;
}
.policy-sidebar__ornament::before,.policy-sidebar__ornament::after { content:""; display:block; height:1px; background:var(--policy-gold); opacity:.48; }
.policy-sidebar__ornament::before { width:22px; }
.policy-sidebar__ornament::after { flex:1; }
.policy-sidebar__ornament span { width:5px; height:5px; display:block; border:1px solid var(--policy-gold); transform:rotate(45deg); }

/* RIGHT CONTENT --------------------------------------------------------- */
.policy-content { min-width: 0; }
.policy-notice {
    display: grid;
    grid-template-columns: 43px minmax(0,1fr);
    gap: 16px;
    align-items: center;
    margin: 0 0 32px;
    padding: 19px 21px;
    background: var(--policy-green-soft);
    border: 1px solid rgba(18,61,50,.10);
    border-left: 2px solid var(--policy-gold);
}
.policy-notice__icon { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(198,161,91,.55); border-radius:50%; color:var(--policy-gold); }
.policy-notice__icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.policy-notice p { margin:0; color:var(--policy-text); font-size:.82rem; line-height:1.7; }

.policy-panel { position:relative; }
.policy-panel__section { display:none; }
.policy-panel__section.is-visible { display:block; animation: policyFade .32s ease both; }
@keyframes policyFade { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.policy-panel__topline { display:flex; align-items:center; gap:16px; margin-bottom:19px; }
.policy-panel__number { color:var(--policy-gold); font-size:.66rem; font-weight:800; letter-spacing:.16em; }
.policy-panel__rule { flex:1; height:1px; background:linear-gradient(90deg,var(--policy-gold),rgba(198,161,91,0)); opacity:.55; }
.policy-panel__title { max-width:850px; margin:0 0 31px; color:var(--policy-green); font-size:clamp(2rem,3.7vw,3.35rem); font-weight:500; line-height:1.08; letter-spacing:-.035em; }
.policy-panel__body { max-width:760px; color:var(--policy-text); font-size:.95rem; line-height:1.9; }
.policy-panel__body p { margin:0 0 20px; }
.policy-panel__body .policy-lead { color:var(--policy-green); font-size:1.04rem; font-weight:600; line-height:1.75; }
.policy-panel__body h3 { margin:34px 0 12px; color:var(--policy-green); font-size:1rem; line-height:1.4; }
.policy-panel__body ul,.policy-panel__body ol { margin:0 0 23px; padding-left:1.35rem; }
.policy-panel__body li { padding-left:7px; margin-bottom:10px; }
.policy-panel__body li::marker { color:var(--policy-gold); }
.policy-panel__body strong { color:var(--policy-green); }
.policy-panel__body a { color:var(--policy-green); text-decoration-color:rgba(198,161,91,.6); text-underline-offset:3px; }
.policy-panel__body a:hover { color:var(--policy-gold); }
.policy-panel__footer { display:flex; justify-content:space-between; align-items:center; max-width:760px; margin-top:46px; padding-top:15px; border-top:1px solid var(--policy-border); color:var(--policy-muted); font-size:.6rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.policy-panel__footer span:last-child { color:var(--policy-gold); }

/* PRINCIPLES ------------------------------------------------------------ */
.policy-principles {
    position:relative;
    overflow:hidden;
    background:#f3f1ea;
    border-top:1px solid var(--policy-border-soft);
    border-bottom:1px solid var(--policy-border-soft);
}
.policy-principles::before {
    content:"";
    position:absolute;
    top:-150px;
    right:-100px;
    width:420px;
    height:420px;
    border:1px solid rgba(198,161,91,.14);
    border-radius:50%;
}
.policy-principles .about-container { position:relative; z-index:1; padding-block:clamp(72px,8vw,108px); }
.policy-principles__intro { display:grid; grid-template-columns:minmax(210px,.55fr) minmax(0,1.45fr); gap:clamp(30px,7vw,100px); align-items:end; margin-bottom:50px; }
.policy-principles__intro .policy-eyebrow { margin-bottom:0; color:var(--policy-gold); align-self:start; }
.policy-principles__intro h2 { max-width:760px; margin:0; color:var(--policy-green); font-size:clamp(2.05rem,4vw,3.35rem); font-weight:500; line-height:1.06; letter-spacing:-.04em; }
.policy-principles__intro h2 em { color:var(--policy-gold); }
.policy-principles__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--policy-border); border-bottom:1px solid var(--policy-border); }
.policy-principles__item { position:relative; min-height:205px; padding:29px 30px 31px; border-right:1px solid var(--policy-border); }
.policy-principles__item:last-child { border-right:0; }
.policy-principles__item::before { content:""; position:absolute; top:-1px; left:0; width:42px; height:2px; background:var(--policy-gold); }
.policy-principles__icon { display:grid; place-items:center; width:44px; height:44px; margin-bottom:24px; border:1px solid rgba(198,161,91,.46); color:var(--policy-gold); font-size:1.35rem; }
.policy-principles__icon svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.policy-principles__item h3 { margin:0 0 9px; color:var(--policy-green); font-size:1.03rem; font-weight:700; line-height:1.35; }
.policy-principles__item p { max-width:290px; margin:0; color:var(--policy-muted); font-size:.84rem; line-height:1.75; }

/* CTA ------------------------------------------------------------------- */
.policy-contact { position:relative; overflow:hidden; background:var(--policy-green-deep); }
.policy-contact::before { content:""; position:absolute; width:520px; height:520px; right:-250px; top:-260px; border:1px solid rgba(198,161,91,.12); border-radius:50%; }
.policy-contact::after { content:""; position:absolute; width:280px; height:280px; left:-180px; bottom:-180px; border:1px solid rgba(198,161,91,.08); border-radius:50%; }
.policy-contact__panel { position:relative; z-index:1; display:grid; grid-template-columns:80px minmax(0,1fr) auto; gap:34px; align-items:center; padding-block:clamp(68px,8vw,105px); }
.policy-contact__mark { display:grid; place-items:center; width:64px; height:64px; border:1px solid rgba(198,161,91,.48); color:var(--policy-gold-light); font-size:1.4rem; }
.policy-contact__content { max-width:760px; }
.policy-contact__content .policy-eyebrow { margin-bottom:14px; }
.policy-contact__content h2 { margin:0; color:var(--policy-white); font-size:clamp(2.05rem,4vw,3.45rem); font-weight:500; line-height:1.05; letter-spacing:-.04em; }
.policy-contact__intro { max-width:640px; margin:17px 0 0; color:rgba(255,255,255,.65); font-size:.88rem; line-height:1.8; }
.policy-contact__details { display:grid; gap:11px; min-width:225px; padding-left:31px; border-left:1px solid rgba(198,161,91,.28); }
.policy-contact__details a,.policy-contact__details > span { color:rgba(255,255,255,.74); font-size:.78rem; line-height:1.6; text-decoration:none; }
.policy-contact__details a:hover { color:var(--policy-gold-light); }
.policy-contact__details > a > span,.policy-contact__details > span > span { margin-right:7px; color:var(--policy-gold); }

/* TABLET ---------------------------------------------------------------- */
@media (max-width:1100px) and (min-width:768px) {
    :root { --policy-sidebar-width:265px; --policy-gap:34px; }
    .policy-sidebar__heading { padding:23px 19px 20px; }
    .policy-nav__item { grid-template-columns:31px minmax(0,1fr) 16px; padding-inline:13px; }
    .policy-nav__label { font-size:.79rem; }
    .policy-contact__panel { grid-template-columns:64px minmax(0,1fr); }
    .policy-contact__details { grid-column:2; min-width:0; padding-left:0; border-left:0; }
}

/* MOBILE ---------------------------------------------------------------- */
@media (max-width:767px) {
    :root { --policy-header-offset:0px; }
    .policy-hero { min-height:430px; }
    .policy-hero__overlay { background:linear-gradient(180deg,rgba(5,27,22,.76),rgba(8,37,31,.84)); }
    .policy-hero__content { padding-block:72px 75px; }
    .policy-hero h1 { font-size:clamp(2.65rem,14vw,4rem); }
    .policy-hero__intro { font-size:.9rem; }
    .policy-hero__scroll { right:18px; bottom:20px; }
    .policy-explorer { display:block; padding-block:45px 65px; }
    .policy-sidebar { margin-bottom:34px; }
    .policy-sidebar__sticky { position:relative; top:auto; }
    .policy-sidebar__heading { padding:21px 18px 19px; }
    .policy-nav__item { min-height:59px; }
    .policy-notice { grid-template-columns:37px minmax(0,1fr); gap:13px; padding:17px 16px; margin-bottom:31px; }
    .policy-notice__icon { width:34px; height:34px; }
    .policy-notice__icon svg { width:24px; height:24px; }
    .policy-panel__title { margin-bottom:25px; font-size:clamp(1.9rem,9vw,2.65rem); }
    .policy-panel__body { font-size:.93rem; line-height:1.84; }
    .policy-principles .about-container { padding-block:62px 70px; }
    .policy-principles__intro { display:block; margin-bottom:38px; }
    .policy-principles__intro .policy-eyebrow { margin-bottom:16px; }
    .policy-principles__grid { grid-template-columns:1fr; }
    .policy-principles__item { min-height:0; border-right:0; border-bottom:1px solid var(--policy-border); }
    .policy-principles__item:last-child { border-bottom:0; }
    .policy-contact__panel { grid-template-columns:1fr; gap:23px; }
    .policy-contact__mark { width:58px; height:58px; }
    .policy-contact__details { min-width:0; padding:0; border-left:0; }
}

@media (max-width:480px) {
    .policy-hero { min-height:405px; }
    .policy-sidebar__heading h2 { font-size:1.48rem; }
    .policy-nav__item { grid-template-columns:29px minmax(0,1fr) 15px; min-height:57px; padding:11px 12px; }
    .policy-nav__label { font-size:.76rem; }
    .policy-panel__body { font-size:.91rem; }
    .policy-contact__content h2 { font-size:2.15rem; }
}

@media (prefers-reduced-motion:reduce) {
    .policy-panel__section,.policy-nav__item,.policy-nav__arrow { animation:none!important; transition:none!important; }
}
