/*
Theme Name: Zaytoun
Theme URI: https://plantolivetree.com
Author: Ahmad
Description: A block theme for PlantOliveTree.com — plant an olive tree in Palestine for $100. Olive-and-beige editorial design, fully editable in the WordPress block editor, WooCommerce-ready, with bilingual (English/Arabic) accents.
Version: 2.2.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zaytoun
Tags: full-site-editing, block-patterns, e-commerce, custom-colors, one-column, editor-style
WC requires at least: 7.0
*/

:root{
  --zt-bone:#EAE4D4;--zt-parchment:#F4F0E4;--zt-sand:#D8CFB8;--zt-ink:#23271A;
  --zt-olive-deep:#2E351D;--zt-olive:#55612F;--zt-leaf:#8D9573;--zt-silver:#B3B99F;
  --zt-gold:#A5822F;--zt-fruit:#4B4E33;
  --zt-arch:200px 200px 10px 10px;
}
.ar{font-family:'Amiri',serif}
:where(.wp-block-group){}

/* ---------- eyebrow ---------- */
.zt-eyebrow{
  font-size:.78rem!important;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--zt-olive);display:flex;align-items:center;gap:14px;margin:0 0 .4rem;
}
.zt-eyebrow::before{content:"";width:34px;height:1px;background:var(--zt-gold);flex:none}
.zt-eyebrow.is-light{color:var(--zt-silver)}

/* ---------- header ---------- */
.wp-block-template-part .zt-head,.zt-head{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--zt-bone) 90%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--zt-sand);
}
.zt-head .wp-block-navigation{font-weight:600}
.zt-head .wp-block-site-title a{text-decoration:none}

/* ---------- section rhythm ---------- */
.zt-section{padding-top:clamp(4.5rem,10vh,7.5rem);padding-bottom:clamp(4.5rem,10vh,7.5rem)}
.zt-section.is-tight{padding-top:clamp(2.5rem,5vh,3.5rem);padding-bottom:clamp(2.5rem,5vh,3.5rem)}

/* ---------- buttons ---------- */
.wp-block-button.is-style-outline .wp-block-button__link{
  border:1px solid var(--zt-olive-deep);color:var(--zt-olive-deep);background:transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--zt-olive-deep);color:var(--zt-bone)}

/* ---------- hero ---------- */
.zt-hero{position:relative;overflow:hidden}
.zt-hero::after{
  content:"زيتون";position:absolute;inset:auto -3% -16% auto;z-index:0;
  font-family:'Amiri',serif;font-size:clamp(180px,30vw,420px);line-height:1;direction:rtl;
  color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--zt-olive) 32%,transparent);
  user-select:none;pointer-events:none;
}
.zt-hero > *{position:relative;z-index:1}
.zt-hero-note{font-size:.9rem;color:var(--zt-olive);margin-top:1.4rem}
.zt-hero-note strong{font-family:'Marcellus',serif;font-weight:400;color:var(--zt-ink);font-size:1.05rem}

/* ---------- arch frame ---------- */
.zt-arch{
  background:var(--zt-parchment);border:1px solid var(--zt-sand);border-radius:var(--zt-arch);
  padding:clamp(20px,3vw,36px);box-shadow:0 30px 60px -30px rgb(35 39 26 / .25);
}
.zt-arch-inner{
  border-radius:180px 180px 6px 6px;border:1px solid var(--zt-sand);overflow:hidden;
  background:linear-gradient(178deg,#EFEADC 0%,#E2DCC6 100%);
  display:flex;align-items:flex-end;justify-content:center;min-height:280px;
}
.zt-arch-inner svg,.zt-arch-inner img{display:block;max-width:100%;height:auto}
.zt-arch-cap{
  display:flex;justify-content:space-between;gap:10px;margin-top:16px!important;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--zt-olive);font-weight:700;
}

/* ---------- ribbon ---------- */
.zt-ribbon{background:var(--zt-olive-deep)!important}
.zt-ribbon .wp-block-column{text-align:center}
.zt-ribbon strong,.zt-ribbon .zt-stat-b{
  display:block;font-family:'Marcellus',serif;font-weight:400;font-size:clamp(1.5rem,3vw,2.2rem);color:#E9E3CF;
}
.zt-ribbon p{color:var(--zt-silver);font-size:.9rem;letter-spacing:.06em;margin:.2rem 0 0}

/* ---------- cards / why ---------- */
.zt-card{border-top:1px solid var(--zt-sand);padding-top:1.6rem}
.zt-card .ar{font-size:1.6rem;color:var(--zt-gold)}
.zt-card h3{font-size:1.4rem;margin:.4rem 0 .5rem}

/* ---------- how steps ---------- */
.zt-steps .wp-block-column{
  background:var(--zt-bone);border:1px solid var(--zt-sand);border-radius:14px;padding:1.7rem 1.6rem;
}
.zt-step-num{font-family:'Marcellus',serif;font-size:.95rem;letter-spacing:.2em;color:var(--zt-gold)}
.has-parchment-bg,.zt-parchment{background:var(--zt-parchment)}

/* ---------- checklist ---------- */
.zt-check{list-style:none;padding:0;margin:0}
.zt-check li{position:relative;padding-left:34px;margin:0 0 .8rem;font-weight:500}
.zt-check li::before{
  content:"";position:absolute;left:2px;top:.5em;width:9px;height:15px;
  border-right:2px solid var(--zt-gold);border-bottom:2px solid var(--zt-gold);
  transform:translateY(-60%) rotate(40deg);
}
.zt-check.is-light li{color:var(--zt-bone)}

/* ---------- offer ---------- */
.zt-offer{
  background:var(--zt-parchment)!important;border:1px solid var(--zt-sand);border-radius:22px;
  padding:clamp(1.6rem,4vw,3.4rem)!important;
}
.zt-price{font-family:'Marcellus',serif;font-size:clamp(2rem,4vw,2.6rem);line-height:1}
.zt-price small{display:block;font-family:'Karla',sans-serif;font-size:.8rem;color:var(--zt-olive);font-weight:500;letter-spacing:.02em}

/* ---------- groves gallery ---------- */
.zt-groves{background:var(--zt-parchment)!important}

/* photo slots: never collapse, always show the arched frame */
.zt-grove-grid .wp-block-column{display:flex;flex-direction:column;gap:20px}
.zt-shot{margin:0;width:100%}
.zt-shot img{
  display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;
  border-radius:150px 150px 8px 8px;border:1px solid var(--zt-sand);
  background:radial-gradient(120% 90% at 50% 0%,#E7E1CE 0%,#DCD4BC 100%);
}
/* if an image is ever missing, keep the frame visible instead of collapsing */
.zt-shot:empty,.zt-shot img:not([src]),.zt-shot img[src=""]{
  min-height:260px;display:block;
  border-radius:150px 150px 8px 8px;
  border:1px dashed color-mix(in srgb,var(--zt-olive) 45%,transparent);
  background:radial-gradient(120% 90% at 50% 0%,#E7E1CE 0%,#DCD4BC 100%);
}
@media(min-width:782px){
  .zt-grove-grid .wp-block-column:nth-child(2){margin-top:34px}
}

/* gallery variant */
.zt-grove-gallery.wp-block-gallery{gap:20px}
.zt-grove-gallery.wp-block-gallery .wp-block-image{margin:0}
.zt-grove-gallery.wp-block-gallery .wp-block-image img{
  border-radius:150px 150px 8px 8px;border:1px solid var(--zt-sand);
  aspect-ratio:3/4;object-fit:cover;width:100%;height:auto;
}

/* legacy placeholder frames (older saved pages still render correctly) */
.zt-grove-frame{
  border-radius:150px 150px 8px 8px;border:1px dashed color-mix(in srgb,var(--zt-olive) 42%,transparent);
  width:100%;aspect-ratio:3/4;
  background:radial-gradient(120% 90% at 50% 0%,#E7E1CE 0%,#DCD4BC 100%);
  display:flex;align-items:flex-end;justify-content:center;
}
.zt-grove-frame span{
  margin-bottom:20px;padding:7px 16px;border-radius:100px;background:color-mix(in srgb,var(--zt-bone) 85%,transparent);
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--zt-olive);
}

/* ---------- timeline ---------- */
.zt-timeline{position:relative}
.zt-timeline::before{content:"";position:absolute;top:9px;left:0;right:0;height:1px;background:color-mix(in srgb,var(--zt-silver) 40%,transparent)}
.zt-timeline .wp-block-column{position:relative;padding-top:34px}
.zt-timeline .wp-block-column::before{
  content:"";position:absolute;top:3px;left:0;width:13px;height:13px;border-radius:50%;
  background:var(--zt-gold);border:3px solid var(--zt-olive-deep);box-shadow:0 0 0 1px var(--zt-gold);
}
.zt-timeline.on-dark{color:var(--zt-silver)}
.zt-timeline .zt-year{font-family:'Marcellus',serif;font-size:1.5rem;color:#EDE7D3;display:block}
.zt-timeline .zt-year-sub{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--zt-gold);display:block;margin:.2rem 0 .5rem}
@media(max-width:781px){
  .zt-timeline::before{top:0;bottom:0;left:6px;right:auto;width:1px;height:auto}
  .zt-timeline .wp-block-column{padding:0 0 0 34px}
}

/* ---------- quote / hadith ---------- */
.zt-quote{
  font-family:'Marcellus',serif;font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.35;
  border-left:2px solid var(--zt-gold);padding-left:26px;
}
.zt-quote cite{display:block;font-family:'Karla',sans-serif;font-style:normal;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--zt-olive);margin-top:1rem}

/* ---------- faq ---------- */
.zt-faq details{border-bottom:1px solid var(--zt-sand);padding:1.4rem 0}
.zt-faq summary{
  font-family:'Marcellus',serif;font-size:1.25rem;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.zt-faq summary::-webkit-details-marker{display:none}
.zt-faq summary::after{content:"+";font-size:1.4rem;color:var(--zt-gold);transition:transform .2s}
.zt-faq details[open] summary::after{transform:rotate(45deg)}
.zt-faq details p{margin:.7rem 0 0;color:color-mix(in srgb,var(--zt-ink) 80%,transparent)}

/* ---------- footer ---------- */
.zt-foot{background:var(--zt-olive-deep)!important;color:var(--zt-silver)}
.zt-foot a{color:var(--zt-silver)}
.zt-foot .wp-block-site-title a{color:#EDE7D3;font-family:'Marcellus',serif}
.zt-foot .wp-social-link{background:transparent;color:var(--zt-silver)}
.zt-foot .wp-block-social-links.is-style-logos-only .wp-social-link{color:var(--zt-silver)}

/* ---------- WooCommerce ---------- */
.woocommerce ul.products li.product{background:var(--zt-parchment);border:1px solid var(--zt-sand);border-radius:16px;padding:14px 14px 22px!important}
.woocommerce ul.products li.product img{border-radius:150px 150px 6px 6px;border:1px solid var(--zt-sand)}
.woocommerce ul.products li.product .price,.woocommerce div.product p.price{font-family:'Marcellus',serif;color:var(--zt-ink)!important}
.woocommerce span.onsale{background:var(--zt-gold);color:var(--zt-bone);border-radius:100px}
.woocommerce div.product div.images img{border-radius:200px 200px 10px 10px;border:1px solid var(--zt-sand)}
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info{border-top-color:var(--zt-olive)!important}
.zt-eyebrow.is-centered{justify-content:center}
