/* =========================================================================
   PHANTOM blog theme — main stylesheet
   Hand-authored, token-driven. Dark is the default (matches the main site,
   which is dark-first); html.ph-light swaps to the light palette.
   ========================================================================= */

/* ---------- Self-hosted Inter ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/inter-700.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/inter-800.woff2') format('woff2');}

/* ---------- Tokens: dark (default) ---------- */
:root,
html.ph-dark{
  --ph-green:#22C55E; --ph-green-2:#16A34A; --ph-green-l:#4ade80; --ph-green-d:#15803d;
  --ph-bg:#071A17; --ph-surface:#0C2520; --ph-card:#12352E;
  --ph-border:#1c4a3f; --ph-border-soft:#163a31;
  --ph-text:#FFFFFF; --ph-heading:#FFFFFF; --ph-muted:#CBD5E1; --ph-soft:#9fb8af;
  --ph-link:#4ade80; --ph-light-green:rgba(34,197,94,.12);
  --ph-bar:rgba(7,26,23,.82); --ph-input:#0C2520;
  --ph-shadow:0 10px 30px rgba(0,0,0,.45), 0 1px 2px rgba(0,0,0,.4);
  --ph-shadow-lift:0 22px 50px rgba(0,0,0,.5);
}
/* ---------- Tokens: light ---------- */
html.ph-light{
  --ph-green:#16A34A; --ph-green-2:#22C55E; --ph-green-l:#22C55E; --ph-green-d:#15803d;
  --ph-bg:#FFFFFF; --ph-surface:#F8FAFC; --ph-card:#FFFFFF;
  --ph-border:#E2E8F0; --ph-border-soft:#EEF2F6;
  --ph-text:#0F172A; --ph-heading:#0F172A; --ph-muted:#64748B; --ph-soft:#475569;
  --ph-link:#16A34A; --ph-light-green:#ECFDF5;
  --ph-bar:rgba(255,255,255,.85); --ph-input:#FFFFFF;
  --ph-shadow:0 6px 24px rgba(15,23,42,.06), 0 1px 2px rgba(15,23,42,.04);
  --ph-shadow-lift:0 20px 50px rgba(15,23,42,.12);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px;}
body{margin:0;background:var(--ph-bg);color:var(--ph-text);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body,.ph-surface,.ph-card,.ph-bar,.ph-tag,.ph-btn,input,textarea,select{
  transition:background-color .3s ease,border-color .3s ease,color .3s ease;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--ph-link);text-decoration:none;}
a:hover{color:var(--ph-green);}
h1,h2,h3,h4,h5,h6{color:var(--ph-heading);line-height:1.2;letter-spacing:-.02em;margin:0 0 .5em;font-weight:700;}
h1{font-weight:800;}
p{margin:0 0 1.1em;}
ul,ol{margin:0 0 1.1em;padding-left:1.3em;}
hr{border:0;border-top:1px solid var(--ph-border);margin:2rem 0;}
:focus-visible{outline:2px solid var(--ph-green);outline-offset:2px;border-radius:4px;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.skip-link{position:absolute;left:-999px;z-index:1000;}
.skip-link:focus{left:12px;top:12px;background:var(--ph-green);color:#fff;padding:8px 14px;border-radius:8px;}

/* ---------- Layout ---------- */
.ph-container{max-width:1200px;margin:0 auto;padding:0 24px;}
.ph-prose{max-width:800px;margin:0 auto;}
.ph-section{padding:56px 0;}
.ph-flex{display:flex;}
.ph-grid{display:grid;}

/* ---------- Buttons ---------- */
.ph-btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;
  padding:11px 18px;border-radius:10px;border:1px solid transparent;cursor:pointer;line-height:1;transition:all .2s ease;}
.ph-btn--primary{background:var(--ph-green);color:#fff!important;box-shadow:0 10px 30px rgba(34,197,94,.3);}
.ph-btn--primary:hover{background:var(--ph-green-d);color:#fff!important;transform:translateY(-1px);}
.ph-btn--ghost{background:transparent;color:var(--ph-heading)!important;border-color:var(--ph-border);}
.ph-btn--ghost:hover{background:var(--ph-surface);}
.ph-btn--block{width:100%;justify-content:center;}

/* ---------- Tags / badges / meta ---------- */
.ph-eyebrow{color:var(--ph-green);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;}
.ph-cat{display:inline-block;color:var(--ph-green);font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;}
.ph-readtime{color:var(--ph-muted);font-size:.8rem;}
.ph-meta{display:flex;align-items:center;gap:10px;color:var(--ph-muted);font-size:.8rem;}
.ph-avatar{width:28px;height:28px;border-radius:999px;object-fit:cover;background:var(--ph-surface);}

/* =========================================================================
   HEADER / NAV
   ========================================================================= */
.ph-header{position:sticky;top:0;z-index:9999;background:var(--ph-bar);backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--ph-border);}
.ph-header__in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;}
.ph-brand{display:flex;align-items:center;gap:10px;}
.ph-brand__name{font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--ph-heading);}
.ph-nav{display:flex;align-items:center;gap:26px;}
.ph-nav a{color:var(--ph-soft)!important;font-size:14px;font-weight:500;}
.ph-nav a:hover,.ph-nav .current-menu-item>a{color:var(--ph-green)!important;}
.ph-header__right{display:flex;align-items:center;gap:12px;}
.ph-toggle{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--ph-border);background:transparent;color:var(--ph-soft);cursor:pointer;}
.ph-toggle:hover{color:var(--ph-green);}
.ph-toggle svg{width:18px;height:18px;}
html.ph-dark .ph-toggle .ph-moon{display:none;}
html.ph-light .ph-toggle .ph-sun{display:none;}
.ph-burger{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--ph-border);background:transparent;color:var(--ph-heading);cursor:pointer;}
.ph-burger svg{width:20px;height:20px;margin:auto;}
/* mobile drawer */
.ph-drawer{display:none;border-top:1px solid var(--ph-border);background:var(--ph-bg);}
.ph-drawer.is-open{display:block;}
.ph-drawer ul{list-style:none;margin:0;padding:12px 0;}
.ph-drawer a{display:block;padding:11px 24px;color:var(--ph-text)!important;font-weight:500;}
.ph-drawer a:hover{background:var(--ph-surface);color:var(--ph-green)!important;}

/* =========================================================================
   BLOG HERO
   ========================================================================= */
.ph-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#04120f 0%,#071A17 55%,#0a241d 100%);color:#fff;}
.ph-hero__in{position:relative;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:32px;padding:64px 0;}
.ph-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05;margin:.4rem 0 1rem;}
.ph-hero h1 .g{color:var(--ph-green);}
.ph-hero p{color:#c7d8d1;max-width:44ch;font-size:1.05rem;}
.ph-hero__art{position:relative;}
.ph-hero__art img{border-radius:16px;}
.ph-hero__glow{position:absolute;right:-60px;top:-40px;width:420px;height:420px;background:rgba(34,197,94,.18);filter:blur(80px);border-radius:50%;pointer-events:none;}
.ph-hero .ph-btn{margin-top:22px;}

/* =========================================================================
   CATEGORY NAV (filter)
   ========================================================================= */
.ph-catnav{border-bottom:1px solid var(--ph-border);}
.ph-catnav__list{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:8px 0;-webkit-overflow-scrolling:touch;}
.ph-catnav__list::-webkit-scrollbar{display:none;}
.ph-catnav a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:10px 16px;border-radius:10px;color:var(--ph-soft)!important;font-weight:600;font-size:.9rem;border:1px solid transparent;}
.ph-catnav a:hover{color:var(--ph-green)!important;background:var(--ph-surface);}
.ph-catnav a.is-active{color:var(--ph-green)!important;border-bottom:2px solid var(--ph-green);border-radius:0;}

/* =========================================================================
   CONTENT LAYOUT (grid + sidebar)
   ========================================================================= */
.ph-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;padding:48px 0;}
.ph-grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}

/* card */
.ph-card{background:var(--ph-card);border:1px solid var(--ph-border);border-radius:14px;overflow:hidden;box-shadow:var(--ph-shadow);display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease;}
.ph-card:hover{transform:translateY(-4px);box-shadow:var(--ph-shadow-lift);}
.ph-card__media{aspect-ratio:16/10;background:var(--ph-surface);overflow:hidden;}
.ph-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.ph-card:hover .ph-card__media img{transform:scale(1.04);}
.ph-card__body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1;}
.ph-card__title{font-size:1.05rem;font-weight:700;margin:0;}
.ph-card__title a{color:var(--ph-heading);}
.ph-card__title a:hover{color:var(--ph-green);}
.ph-card__excerpt{color:var(--ph-muted);font-size:.9rem;margin:0;}
.ph-card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;}

/* featured */
.ph-featured{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;background:var(--ph-card);border:1px solid var(--ph-border);border-radius:18px;overflow:hidden;box-shadow:var(--ph-shadow);margin-bottom:32px;}
.ph-featured__media{min-height:320px;background:var(--ph-surface);}
.ph-featured__media img{width:100%;height:100%;object-fit:cover;}
.ph-featured__body{padding:28px;display:flex;flex-direction:column;justify-content:center;}
.ph-featured__title{font-size:1.6rem;}

/* =========================================================================
   SIDEBAR
   ========================================================================= */
.ph-side{display:flex;flex-direction:column;gap:22px;}
.ph-widget{background:var(--ph-card);border:1px solid var(--ph-border);border-radius:14px;padding:20px;box-shadow:var(--ph-shadow);}
.ph-widget h3,.ph-widget .ph-widget__title{font-size:1rem;font-weight:700;margin:0 0 14px;}
.ph-widget ul{list-style:none;margin:0;padding:0;}
.ph-side-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--ph-border-soft);}
.ph-side-list li:last-child{border-bottom:0;}
.ph-side-list a{color:var(--ph-text);display:flex;align-items:center;gap:10px;font-size:.92rem;font-weight:500;}
.ph-side-list a:hover{color:var(--ph-green);}
.ph-count{color:var(--ph-muted);font-size:.8rem;}
.ph-popular li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--ph-border-soft);}
.ph-popular li:last-child{border-bottom:0;}
.ph-popular__thumb{width:56px;height:48px;border-radius:8px;object-fit:cover;flex:none;background:var(--ph-surface);}
.ph-popular__t{font-size:.85rem;font-weight:600;color:var(--ph-heading);line-height:1.3;}
.ph-popular a:hover .ph-popular__t{color:var(--ph-green);}
.ph-popular__d{color:var(--ph-muted);font-size:.75rem;}

/* newsletter widget / blocks */
.ph-news{text-align:left;}
.ph-news__icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--ph-light-green);color:var(--ph-green);margin-bottom:10px;}
.ph-news p{color:var(--ph-muted);font-size:.88rem;}
.ph-field{width:100%;background:var(--ph-input);color:var(--ph-text);border:1px solid var(--ph-border);border-radius:10px;padding:11px 13px;font-size:.9rem;font-family:inherit;}
.ph-field:focus{outline:none;border-color:var(--ph-green);box-shadow:0 0 0 3px rgba(34,197,94,.2);}
.ph-fine{color:var(--ph-muted);font-size:.72rem;margin:.6rem 0 0;}

/* search widget */
.ph-search{position:relative;}
.ph-search input{padding-right:40px;}
.ph-search__btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--ph-muted);cursor:pointer;padding:6px;}
.ph-search__results{margin-top:10px;}

/* =========================================================================
   PAGINATION
   ========================================================================= */
.ph-pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0 4px;}
.ph-pagination .page-numbers{display:grid;place-items:center;min-width:40px;height:40px;padding:0 10px;border-radius:10px;border:1px solid var(--ph-border);color:var(--ph-text);font-weight:600;font-size:.9rem;}
.ph-pagination .page-numbers:hover{border-color:var(--ph-green);color:var(--ph-green);}
.ph-pagination .page-numbers.current{background:var(--ph-green);border-color:var(--ph-green);color:#fff;}
.ph-pagination .page-numbers.dots{border:0;}

/* =========================================================================
   SINGLE ARTICLE
   ========================================================================= */
.ph-article{padding:40px 0 64px;}
.ph-breadcrumbs{font-size:.82rem;color:var(--ph-muted);margin-bottom:18px;}
.ph-breadcrumbs a{color:var(--ph-muted);}
.ph-breadcrumbs a:hover{color:var(--ph-green);}
.ph-breadcrumbs .sep{margin:0 8px;opacity:.6;}
.ph-article__header{max-width:800px;margin:0 auto 26px;}
.ph-article__title{font-size:clamp(1.9rem,4vw,2.6rem);margin:.4rem 0 .6rem;}
.ph-article__meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;color:var(--ph-muted);font-size:.85rem;}
.ph-article__meta .dot{width:4px;height:4px;border-radius:50%;background:var(--ph-muted);}
.ph-article__hero{max-width:1000px;margin:0 auto 36px;border-radius:16px;overflow:hidden;box-shadow:var(--ph-shadow);}
.ph-single-wrap{display:grid;grid-template-columns:240px minmax(0,800px);gap:48px;justify-content:center;align-items:start;}

/* TOC */
.ph-toc{position:sticky;top:88px;align-self:start;font-size:.86rem;}
.ph-toc__title{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--ph-muted);font-weight:700;margin-bottom:10px;}
.ph-toc ul{list-style:none;margin:0;padding:0;border-left:2px solid var(--ph-border);}
.ph-toc li a{display:block;padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--ph-muted);}
.ph-toc li a:hover{color:var(--ph-green);}
.ph-toc li a.is-active{color:var(--ph-green);border-left-color:var(--ph-green);font-weight:600;}
.ph-toc .lvl-3 a{padding-left:26px;font-size:.82rem;}
.ph-toc__mobile{display:none;}

/* prose typography */
.ph-content{font-size:1.0625rem;line-height:1.8;color:var(--ph-soft);}
.ph-content>*{max-width:800px;}
.ph-content h2{font-size:1.6rem;margin:2em 0 .6em;scroll-margin-top:88px;}
.ph-content h3{font-size:1.25rem;margin:1.6em 0 .5em;scroll-margin-top:88px;}
.ph-content p{margin:0 0 1.2em;}
.ph-content a{color:var(--ph-link);text-decoration:underline;text-underline-offset:2px;}
.ph-content img{border-radius:12px;margin:1.5em 0;}
.ph-content ul,.ph-content ol{margin:0 0 1.2em;padding-left:1.4em;}
.ph-content li{margin:.4em 0;}
.ph-content blockquote{margin:1.6em 0;padding:.4em 0 .4em 20px;border-left:3px solid var(--ph-green);color:var(--ph-heading);font-size:1.15rem;font-style:italic;}
.ph-content table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.95rem;}
.ph-content th,.ph-content td{border:1px solid var(--ph-border);padding:10px 12px;text-align:left;}
.ph-content thead th{background:var(--ph-surface);color:var(--ph-heading);}
.ph-content code{background:var(--ph-surface);border:1px solid var(--ph-border);border-radius:6px;padding:.15em .4em;font-size:.9em;}
.ph-content pre{background:#06140f;color:#d5e8df;border:1px solid var(--ph-border);border-radius:12px;padding:18px;overflow:auto;margin:1.6em 0;}
.ph-content pre code{background:none;border:0;padding:0;}

/* content boxes */
.ph-box{border:1px solid var(--ph-border);border-left-width:4px;border-radius:12px;padding:16px 18px;margin:1.6em 0;background:var(--ph-card);}
.ph-box__label{font-weight:700;font-size:.85rem;display:flex;align-items:center;gap:8px;margin-bottom:6px;letter-spacing:.02em;}
.ph-box p:last-child{margin-bottom:0;}
.ph-box--tip{border-left-color:#22C55E;background:var(--ph-light-green);}
.ph-box--tip .ph-box__label{color:var(--ph-green);}
.ph-box--best{border-left-color:#16A34A;}
.ph-box--best .ph-box__label{color:var(--ph-green-2);}
.ph-box--warning{border-left-color:#f59e0b;background:rgba(245,158,11,.08);}
.ph-box--warning .ph-box__label{color:#d97706;}
.ph-box--important{border-left-color:#3b82f6;background:rgba(59,130,246,.08);}
.ph-box--important .ph-box__label{color:#3b82f6;}
.ph-box--example{border-left-color:#8b5cf6;background:rgba(139,92,246,.08);}
.ph-box--example .ph-box__label{color:#8b5cf6;}

/* inline CTA */
.ph-cta-inline{margin:2.2em auto;max-width:800px;border-radius:16px;padding:28px;background:linear-gradient(120deg,#04120f,#0a241d);border:1px solid var(--ph-border);text-align:center;}
.ph-cta-inline h3{color:#fff;font-size:1.35rem;margin:0 0 8px;}
.ph-cta-inline p{color:#c7d8d1;margin:0 0 16px;}

/* author box */
.ph-author{display:flex;gap:16px;align-items:flex-start;max-width:800px;margin:40px auto 0;padding:22px;background:var(--ph-card);border:1px solid var(--ph-border);border-radius:14px;}
.ph-author__img{width:64px;height:64px;border-radius:999px;object-fit:cover;flex:none;background:var(--ph-surface);}
.ph-author__name{font-weight:700;color:var(--ph-heading);margin:0;}
.ph-author__bio{color:var(--ph-muted);font-size:.9rem;margin:.3em 0 .6em;}
.ph-author__social{display:flex;gap:10px;}
.ph-author__social a{color:var(--ph-muted);}
.ph-author__social a:hover{color:var(--ph-green);}

/* related */
.ph-related{padding:48px 0;border-top:1px solid var(--ph-border);margin-top:48px;}
.ph-related h2{font-size:1.4rem;margin-bottom:22px;}

/* in-content link blocks (internal linking component) */
.ph-linkblock{margin:1.8em auto;max-width:800px;border:1px solid var(--ph-border);border-radius:14px;padding:18px 20px;background:var(--ph-surface);}
.ph-linkblock__title{font-weight:700;color:var(--ph-heading);font-size:.95rem;margin:0 0 10px;}
.ph-linkblock ul{margin:0;padding:0;list-style:none;}
.ph-linkblock li{padding:5px 0;}
.ph-linkblock li a{color:var(--ph-link);font-weight:500;}

/* =========================================================================
   FOOTER
   ========================================================================= */
.ph-footer{background:#04120f;border-top:1px solid var(--ph-border);color:#9fb8af;padding:56px 0 32px;}
html.ph-light .ph-footer{background:#071A17;}
.ph-footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px;}
.ph-footer__about{max-width:280px;font-size:.88rem;color:#9fb8af;}
.ph-footer__brandname{font-weight:800;color:#fff;font-size:18px;letter-spacing:-.02em;}
.ph-footer h4{color:#fff;font-size:.9rem;margin:0 0 14px;}
.ph-footer ul{list-style:none;margin:0;padding:0;}
.ph-footer li{margin:.5em 0;}
.ph-footer a{color:#9fb8af;font-size:.88rem;}
.ph-footer a:hover{color:var(--ph-green-l);}
.ph-footer__social{display:flex;gap:10px;margin-top:16px;}
.ph-footer__social a{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid #1c4a3f;color:#9fb8af;}
.ph-footer__social a:hover{color:var(--ph-green-l);border-color:var(--ph-green);}
.ph-footer__bottom{margin-top:40px;padding-top:22px;border-top:1px solid #1c4a3f;text-align:center;color:#6f867d;font-size:.82rem;}

/* =========================================================================
   ANIMATIONS
   ========================================================================= */
.ph-reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;}
.ph-reveal.in{opacity:1;transform:none;}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:1024px){
  .ph-layout{grid-template-columns:1fr;}
  .ph-side{display:none;}
  .ph-single-wrap{grid-template-columns:minmax(0,800px);}
  .ph-toc{display:none;}
  .ph-toc__mobile{display:block;max-width:800px;margin:0 auto 24px;}
  .ph-grid-cards{grid-template-columns:repeat(2,1fr);}
  .ph-featured{grid-template-columns:1fr;}
  .ph-featured__media{min-height:220px;}
}
@media (max-width:768px){
  .ph-nav{display:none;}
  .ph-burger{display:grid;}
  .ph-header__right .ph-btn--primary span{display:none;}
  .ph-hero__in{grid-template-columns:1fr;padding:48px 0;}
  .ph-hero__art{display:none;}
  .ph-footer__grid{grid-template-columns:1fr 1fr;gap:28px;}
  .ph-footer__about{grid-column:1/-1;}
}
@media (max-width:560px){
  .ph-container{padding:0 18px;}
  .ph-grid-cards{grid-template-columns:1fr;}
  .ph-footer__grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important;}
}

/* =========================================================================
   Contact Form 7 (Contact Us page)
   ========================================================================= */
.ph-cf7 p{margin:0 0 16px;}
.ph-cf7 label{display:block;font-size:.9rem;font-weight:600;color:var(--ph-heading);margin-bottom:6px;}
.ph-cf7 .req{color:var(--ph-green);font-weight:600;}
.ph-cf7 .opt{color:var(--ph-muted);font-weight:500;}
.wpcf7-form input[type=text],.wpcf7-form input[type=email],.wpcf7-form input[type=tel],
.wpcf7-form input[type=url],.wpcf7-form select,.wpcf7-form textarea{width:100%;}
.wpcf7-form textarea{min-height:120px;resize:vertical;}
.wpcf7-form .wpcf7-submit{cursor:pointer;width:auto;padding:11px 24px;box-shadow:0 10px 30px rgba(34,197,94,.3);}
.wpcf7-form .wpcf7-submit:hover{background:var(--ph-green-d)!important;}
/* keep the honeypot invisible to humans */
.wpcf7-form [data-cf7apps-honeypot],.wpcf7-form .website-url-wrap{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;}
/* validation + response messages */
.wpcf7-not-valid-tip{color:#ef4444;font-size:.8rem;margin-top:4px;}
.wpcf7-form input.wpcf7-not-valid,.wpcf7-form select.wpcf7-not-valid,.wpcf7-form textarea.wpcf7-not-valid{border-color:#ef4444!important;}
.wpcf7-response-output{margin:16px 0 0!important;padding:12px 14px!important;border-radius:10px;font-size:.88rem;border:1px solid var(--ph-border);}
.wpcf7-form.sent .wpcf7-response-output{border-color:var(--ph-green);background:var(--ph-light-green);color:var(--ph-green);}
.wpcf7-form.invalid .wpcf7-response-output,.wpcf7-form.failed .wpcf7-response-output,.wpcf7-form.spam .wpcf7-response-output{border-color:#ef4444;background:rgba(239,68,68,.08);color:#ef4444;}
.wpcf7-spinner{margin:0 0 0 10px;}

/* =========================================================================
   Brand lockup (logo image + wordmark + tagline)
   ========================================================================= */
.ph-brand{align-items:center;}
.ph-brand__logo{display:block;height:36px;width:auto;}
.ph-brand__lock{display:flex;flex-direction:column;line-height:1;}
.ph-brand__tag{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ph-muted);margin-top:3px;}
.ph-footer .ph-brand__tag{color:#9fb8af;}

/* =========================================================================
   Contact Form 7 — match the site card style
   ========================================================================= */
.ph-content .wpcf7{max-width:680px;margin:10px auto 0;background:var(--ph-card);border:1px solid var(--ph-border);border-radius:16px;padding:28px;box-shadow:var(--ph-shadow);}
@media (max-width:560px){ .ph-content .wpcf7{padding:20px;} }
.ph-cf7 p{margin:0 0 18px;}
.ph-cf7 p:last-of-type{margin-bottom:0;}
.ph-cf7 label{display:block;font-size:.88rem;font-weight:600;color:var(--ph-heading);margin-bottom:7px;}
.ph-cf7 .req{color:var(--ph-green);font-weight:600;font-size:.8em;}
.ph-cf7 .opt{color:var(--ph-muted);font-weight:500;font-size:.8em;}
.wpcf7-form input[type=text],.wpcf7-form input[type=email],.wpcf7-form input[type=tel],
.wpcf7-form input[type=url],.wpcf7-form select,.wpcf7-form textarea{
  width:100%;padding:11px 14px;font-size:.92rem;font-family:inherit;
  background:var(--ph-input);color:var(--ph-text);border:1px solid var(--ph-border);border-radius:10px;}
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{
  outline:none;border-color:var(--ph-green);box-shadow:0 0 0 3px rgba(34,197,94,.22);}
.wpcf7-form textarea{min-height:120px;resize:vertical;}
.wpcf7-form select{
  appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;}
.wpcf7-form .wpcf7-submit{
  width:100%;margin-top:4px;cursor:pointer;border:none;border-radius:10px;
  padding:13px 24px;font-weight:600;font-size:.95rem;color:#fff!important;
  background:var(--ph-green)!important;box-shadow:0 10px 30px rgba(34,197,94,.3);transition:background .2s ease;}
.wpcf7-form .wpcf7-submit:hover{background:var(--ph-green-d)!important;}
/* keep honeypot invisible */
.wpcf7-form [data-cf7apps-honeypot],.wpcf7-form .website-url-wrap{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;}
/* validation + responses */
.wpcf7-not-valid-tip{color:#ef4444;font-size:.8rem;margin-top:5px;}
.wpcf7-form .wpcf7-not-valid{border-color:#ef4444!important;}
.wpcf7-response-output{margin:18px 0 0!important;padding:12px 14px!important;border-radius:10px;font-size:.88rem;border:1px solid var(--ph-border);}
.wpcf7-form.sent .wpcf7-response-output{border-color:var(--ph-green);background:var(--ph-light-green);color:var(--ph-green);}
.wpcf7-form.invalid .wpcf7-response-output,.wpcf7-form.unaccepted .wpcf7-response-output,.wpcf7-form.failed .wpcf7-response-output,.wpcf7-form.spam .wpcf7-response-output{border-color:#ef4444;background:rgba(239,68,68,.08);color:#ef4444;}
.wpcf7-spinner{margin:0 0 0 10px;}
