/*
Theme Name: Daniella Somers Counselling
Theme URI: https://github.com/garethnicholls/daniella-somers
Author: Gareth Nicholls
Description: Editable WordPress block theme matching the approved Daniella Somers main design.
Version: 1.3.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: daniella-somers
*/

:root{--cream:#fff8f5;--blush:#f3dde2;--rose:#d58f9e;--berry:#87445d;--wine:#512c3a;--ink:#352832;--muted:#76666d;--line:rgba(81,44,58,.15);--white:#fff;--max:1160px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{margin:0!important;background:var(--cream);color:var(--ink);font:16px/1.72 Arial,sans-serif;overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
body>.wp-site-blocks{padding:0!important}
.wp-site-blocks>*{margin-block-start:0!important}
.wp-site-blocks :where(.wp-block-group,.wp-block-buttons,.wp-block-navigation){margin-block-start:0;margin-block-end:0}
a{color:inherit}.ds-shell{width:min(calc(100% - 36px),var(--max));margin-inline:auto}

/* Header — intentionally mirrors the approved static site. */
.ds-header{position:sticky;top:0;z-index:50;background:rgba(255,248,245,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.ds-header-inner{min-height:82px;display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding:0!important}
.ds-brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.ds-logo{width:46px;height:46px;color:var(--berry);flex:0 0 46px}.ds-brand-copy{display:block;min-width:0}.ds-brand-name{display:block;font:400 22px/1 Georgia,serif;color:var(--wine);white-space:nowrap}.ds-brand-sub{display:block;font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:4px;white-space:nowrap}
.ds-desktop-nav{display:flex;gap:24px;align-items:center;flex-shrink:0}.ds-desktop-nav a{font-size:9px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--wine);white-space:nowrap}.ds-desktop-nav a:hover{text-decoration:underline;text-underline-offset:5px}.ds-mobile-menu{display:none}

/* Hero */
.ds-hero{padding:0!important}.ds-hero-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.88fr);align-items:center;gap:clamp(48px,7vw,96px);min-height:calc(100svh - 82px);padding:68px 0 88px}.ds-hero-copy{max-width:650px;min-width:0}.ds-kicker{font-size:9px!important;line-height:1.72!important;letter-spacing:.22em;text-transform:uppercase;color:var(--berry);margin:0 0 18px!important}.ds-display{font:400 clamp(64px,9vw,122px)/.84 Georgia,serif!important;letter-spacing:-.065em;color:var(--wine);margin:0 0 28px!important;overflow-wrap:normal}.ds-intro{font:400 clamp(23px,2.5vw,35px)/1.25 Georgia,serif!important;margin:0 0 18px!important;max-width:630px}.ds-copy,.ds-muted{color:var(--muted)}.ds-copy{max-width:590px;margin:0!important}
.ds-buttons{display:flex!important;gap:10px!important;flex-wrap:wrap;margin-top:26px!important}.ds-buttons .wp-block-button{margin:0!important}.ds-buttons .wp-block-button__link,.ds-contact .wp-block-button__link{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:0 20px;border-radius:999px!important;border:1px solid var(--berry)!important;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:9px;line-height:1.2;transition:.2s;text-align:center}.ds-buttons .wp-block-button__link:hover,.ds-contact .wp-block-button__link:hover{transform:translateY(-2px)}.ds-buttons .is-style-outline .wp-block-button__link{background:transparent!important;color:var(--berry)!important}
.ds-portrait-wrap{position:relative;max-width:485px;width:100%;margin-inline:auto;min-width:0}.ds-portrait-wrap:before{content:"";position:absolute;inset:14px -26px -20px 26px;background:var(--blush);border-radius:45% 55% 56% 44%;transform:rotate(7deg)}.ds-portrait{position:relative;aspect-ratio:4/5;border-radius:48% 48% 26px 26px;overflow:hidden;box-shadow:0 26px 65px rgba(81,44,58,.16);background:var(--blush);min-height:0}.ds-portrait img,.ds-portrait .portrait-photo{width:100%!important;height:100%!important;object-fit:cover;object-position:center 12%;display:block}.ds-nameplate{position:relative;display:inline-flex;margin-top:15px!important;background:rgba(255,255,255,.88);padding:10px 14px;border:1px solid var(--line);border-radius:999px;font-size:9px!important;line-height:1.4!important;letter-spacing:.14em;text-transform:uppercase;color:var(--berry);max-width:100%;white-space:normal}

/* Main sections */
.ds-quote{background:var(--wine);color:#fff0f1;padding:80px 0}.ds-quote p{font:400 clamp(30px,4.6vw,62px)/1.06 Georgia,serif!important;letter-spacing:-.04em;max-width:980px;margin:0!important}.ds-section{padding:96px 0}.ds-split{display:grid!important;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(42px,7vw,86px);align-items:start}.ds-section-title{font:400 clamp(42px,6vw,74px)/.96 Georgia,serif!important;letter-spacing:-.055em;color:var(--wine);margin:0!important;overflow-wrap:anywhere}.ds-section h3{font:400 28px/1.1 Georgia,serif;color:var(--wine);margin:0 0 10px}.ds-section p{max-width:720px}.ds-soft{background:var(--blush)}

/* Cards — WordPress block wrappers must stretch exactly like the static grid. */
.ds-card-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:42px;align-items:stretch!important}.ds-card-grid>.wp-block-group{height:100%;min-width:0}.ds-card{height:100%;background:rgba(255,255,255,.76);border:1px solid var(--line);padding:28px;border-radius:20px;display:flex!important;flex-direction:column;align-items:stretch;min-width:0}.ds-card-num{font:italic 22px/1.2 Georgia,serif!important;color:var(--rose);margin:0!important}.ds-card h3{margin:42px 0 10px!important}.ds-card p{color:var(--muted);margin-top:0;margin-bottom:0}.ds-card p+p{margin-top:1em}.ds-more{margin-top:52px}

/* Qualifications match the static .qual cards, not practice-card title spacing. */
.ds-credentials{background:#fff}.ds-qual strong{display:block;color:var(--berry);margin-bottom:6px}.ds-qual h3{margin:0 0 10px!important}.ds-qual p:first-child{margin:0 0 6px!important}.ds-qual p:last-child{margin-top:auto}.ds-pill{display:inline-flex;margin-top:18px!important;padding:10px 14px;border:1px solid var(--line);border-radius:999px;color:var(--berry);font-size:10px!important;letter-spacing:.1em;text-transform:uppercase;background:#fff;max-width:100%}.ds-training{columns:2;column-gap:40px;margin:18px 0 0;padding-left:19px;color:var(--muted)}.ds-training li{break-inside:avoid;margin:0 0 7px}

/* Fees */
.ds-fees{background:#fff7f4}.ds-fee{justify-content:flex-start}.ds-fee p{margin:0!important;width:100%}.ds-fee strong{display:block;font:400 32px/1.15 Georgia,serif;color:var(--berry);margin-bottom:6px}

/* Contact */
.ds-contact{background:var(--rose);color:#fff;padding:90px 0}.ds-contact .ds-kicker,.ds-contact .ds-section-title{color:#fff}.ds-contact .ds-section-title{max-width:760px}.ds-contact-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}.ds-contact-links{display:grid!important;gap:10px;margin-top:25px}.ds-contact-links .wp-block-button{width:max-content;max-width:100%;margin:0!important}.ds-contact-links .wp-block-button__link{background:transparent!important;color:#fff!important;border-color:#fff!important;max-width:100%;white-space:normal}.ds-contact-note{font-size:12px!important;opacity:.85}.ds-bacp-link{color:#fff;overflow-wrap:anywhere}

.ds-footer{padding:26px 0;color:var(--muted);font-size:10px}.ds-footer-inner{display:flex!important;justify-content:space-between;gap:20px}.ds-footer p{margin:0!important;font-size:10px!important}

/* Large tablets / small laptops: preserve the desktop composition without crowding. */
@media(max-width:1100px){
  .ds-shell{width:min(calc(100% - 32px),var(--max))}
  .ds-header-inner{gap:14px}
  .ds-desktop-nav{gap:16px}
  .ds-brand-name{font-size:20px}
  .ds-hero-grid{gap:clamp(36px,5vw,64px)}
  .ds-display{font-size:clamp(62px,8.2vw,94px)!important}
  .ds-section-title{font-size:clamp(40px,5.4vw,64px)!important}
}

/* Tablets and phones: same content order as the approved static site. */
@media(max-width:900px){
  html{scroll-padding-top:78px}
  .ds-header-inner{min-height:74px}
  .ds-desktop-nav{display:none}
  .ds-mobile-menu{display:block;position:relative;flex:0 0 auto}
  .ds-mobile-menu summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.15em;min-height:44px;display:flex;align-items:center}
  .ds-mobile-menu summary::-webkit-details-marker{display:none}
  .ds-mobile-menu nav{display:grid;position:absolute;right:0;top:48px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;gap:14px;min-width:210px;max-width:min(82vw,300px);box-shadow:0 16px 40px rgba(81,44,58,.12)}
  .ds-mobile-menu nav a{font-size:10px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--wine);padding:5px 0}
  .ds-hero-grid{grid-template-columns:1fr;min-height:auto;padding:54px 0 70px;gap:48px}
  .ds-display{font-size:clamp(58px,14vw,96px)!important}
  .ds-portrait-wrap{width:min(88%,520px);margin:12px auto 0}
  .ds-split,.ds-contact-grid{grid-template-columns:1fr;gap:34px}
  .ds-card-grid{grid-template-columns:1fr;gap:14px}
  .ds-card-grid>.wp-block-group{height:auto}
  .ds-card{height:auto}
  .ds-training{columns:1}
  .ds-section{padding:74px 0}
  .ds-quote{padding:64px 0}
  .ds-contact{padding:72px 0}
  .ds-footer-inner{flex-direction:column}
  .ds-buttons .wp-block-button__link{min-height:50px}
}

/* Mid-size phones and portrait tablets. */
@media(max-width:700px){
  .ds-shell{width:min(calc(100% - 28px),var(--max))}
  .ds-brand-sub{letter-spacing:.13em}
  .ds-hero-grid{padding:48px 0 62px;gap:38px}
  .ds-display{font-size:clamp(54px,15vw,82px)!important;letter-spacing:-.058em}
  .ds-intro{font-size:clamp(22px,5.8vw,30px)!important}
  .ds-section-title{font-size:clamp(40px,10.5vw,58px)!important}
  .ds-quote p{font-size:clamp(30px,8vw,48px)!important}
  .ds-card h3{font-size:26px}
  .ds-contact-grid{gap:28px}
}

/* Phones including iPhone/Pixel widths. */
@media(max-width:480px){
  .ds-shell{width:min(calc(100% - 24px),var(--max))}
  .ds-header-inner{min-height:70px;gap:10px}
  .ds-brand{gap:9px}
  .ds-brand-name{font-size:19px}
  .ds-brand-sub{font-size:7px;letter-spacing:.11em}
  .ds-logo{width:40px;height:40px;flex-basis:40px}
  .ds-mobile-menu summary{padding:9px 12px;min-height:42px}
  .ds-mobile-menu nav{right:0;min-width:190px}
  .ds-hero-grid{padding:42px 0 58px;gap:32px}
  .ds-display{font-size:clamp(50px,16vw,72px)!important;line-height:.87!important;letter-spacing:-.055em}
  .ds-kicker{letter-spacing:.18em}
  .ds-intro{font-size:clamp(21px,6vw,27px)!important}
  .ds-buttons{display:grid!important;width:100%}
  .ds-buttons .wp-block-button,.ds-buttons .wp-block-button__link{width:100%}
  .ds-portrait-wrap{width:min(92%,440px)}
  .ds-portrait-wrap:before{inset:12px -14px -14px 18px}
  .ds-nameplate{font-size:8px!important;letter-spacing:.1em;padding:9px 12px}
  .ds-section{padding:64px 0}
  .ds-section-title{font-size:clamp(38px,11vw,52px)!important;line-height:.98!important}
  .ds-quote{padding:56px 0}.ds-quote p{font-size:34px!important}
  .ds-card{padding:22px}
  .ds-card h3{margin-top:34px!important;font-size:25px}
  .ds-qual h3{margin-top:0!important}
  .ds-contact{padding:64px 0}
  .ds-contact-links .wp-block-button,.ds-contact-links .wp-block-button__link{width:100%}
  .ds-contact-links .wp-block-button__link{min-height:50px;padding-inline:14px}
}

/* Very narrow phones / browser split-screen. */
@media(max-width:360px){
  .ds-shell{width:min(calc(100% - 20px),var(--max))}
  .ds-brand-name{font-size:17px}
  .ds-brand-sub{font-size:6.5px;letter-spacing:.08em}
  .ds-logo{width:36px;height:36px;flex-basis:36px}
  .ds-mobile-menu summary{font-size:8px;padding:8px 10px}
  .ds-display{font-size:clamp(46px,15.5vw,58px)!important}
  .ds-intro{font-size:20px!important}
  .ds-section-title{font-size:36px!important}
  .ds-card{padding:20px}
  .ds-nameplate{border-radius:16px}
}

/* Short landscape screens: don't force a viewport-height hero. */
@media(max-height:650px) and (min-width:901px){
  .ds-hero-grid{min-height:auto;padding-top:54px;padding-bottom:64px}
}

/* Touch, keyboard and motion accessibility. */
@media(hover:none){.ds-buttons .wp-block-button__link:hover,.ds-contact .wp-block-button__link:hover{transform:none}}
:where(a,button,summary,input,textarea,select):focus-visible{outline:3px solid currentColor;outline-offset:4px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ds-buttons .wp-block-button__link,.ds-contact .wp-block-button__link{transition:none}.ds-buttons .wp-block-button__link:hover,.ds-contact .wp-block-button__link:hover{transform:none}}
