/* irishtaxdisc.com: once, twice or four times. Lavender page, violet-black ink, raspberry accent; Libre Bodoni + Outfit.
   Text sizes in rem (browser text size setting respected); disc sizes in px (they are the data, on one fixed scale). */
:root{--fond:#dcd3f6;--fond2:#cfc4f0;--encre:#1d1240;--doux:#43376e;--fram:#980a42;--clair:#f3efff;--serif:'Libre Bodoni',Georgia,serif;--sans:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font:400 1.125rem/1.55 var(--sans)}
a{color:var(--encre);text-underline-offset:3px}
a:hover{color:var(--fram)}
:focus-visible{outline:3px solid var(--fram);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.evite{position:absolute;left:-9999px;top:0;background:var(--encre);color:var(--clair);padding:.75rem 1rem;z-index:10}
.evite:focus{left:1rem}
main:focus{outline:none}

.haut{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1.75rem;padding:1rem clamp(16px,5vw,80px) .25rem}
.marque{font:700 1.625rem/1 var(--serif);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.haut ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 1.5rem;margin:0;padding:0;align-items:center}
.haut a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:none}
.haut a[aria-current]{color:var(--fram);text-decoration:underline;text-decoration-thickness:2px}

main{padding:0 clamp(16px,5vw,80px)}
.tete-page{padding:1.25rem 0 2.25rem}
h1{font:700 clamp(1.1875rem,1.6vw,1.375rem)/1.3 var(--sans);margin:0 0 .375rem;color:var(--doux);letter-spacing:.01em}
.outil h1,.interieur h1{font:700 clamp(2.25rem,4.4vw,4rem)/1.05 var(--serif);color:var(--encre);letter-spacing:-.01em;margin-bottom:.5rem}
.chapeau{margin:.25rem 0 0;max-width:42em;color:var(--doux)}
.resume{font:400 clamp(1.25rem,1.8vw,1.5rem)/1.4 var(--sans);margin:1.125rem 0 0;max-width:46em}
.resume strong{font:700 1.25em/1 var(--serif)}
.resume .rs-vide{display:none;color:var(--doux)}
.resume.attente .rs-plein{display:none}
.resume.attente .rs-vide{display:inline}
.qual{margin:.375rem 0 0;color:var(--doux);max-width:48em}

.cherche{display:flex;flex-wrap:wrap;gap:.625rem 1.5rem;align-items:flex-end;margin:1rem 0 .25rem}
.cherche label{display:block;font-weight:600;font-size:1.0625rem;margin-bottom:.25rem}
.cherche label span{font-weight:400;color:var(--doux)}
.cherche select,.cherche input{font:600 1.25rem/1.2 var(--sans);color:var(--encre);background:var(--clair);border:2px solid var(--doux);border-radius:6px;height:3.25rem;padding:0 .75rem}
.cherche select{max-width:100%}
.cherche input{width:9.5rem;font-size:1.5rem}
#plaque{width:10.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.ch-a{max-width:100%}
.pl-lu{width:100%;margin:0;color:var(--doux);font-size:1rem}
.base08{border:0;padding:0;margin:0;width:100%;max-width:56em}
.base08 legend{font-size:1.0625rem;margin-bottom:.25rem}
.base08 label{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;margin-right:1.375rem;font-weight:400}
input[type=radio]{width:22px;height:22px;accent-color:var(--encre)}
.err{width:100%;margin:.125rem 0 0;color:var(--fram);font-weight:600}
.err:empty{display:none}

/* Discs: one grid for the three rows, so the totals sit just after the widest row of discs (judge, correction 6). */
.rythme{margin-top:1.125rem;max-width:80rem;--D:420px;display:grid;grid-template-columns:12.5rem auto minmax(13rem,1fr);column-gap:2rem;align-items:center}
.rangee{display:contents}
.r-titre,.ds,.r-tot{padding:.5rem 0}
.r-titre{margin:0;font-weight:600;line-height:1.25}
.ds{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem .875rem;transition:opacity .3s}
.dq{display:flex;flex-direction:column;align-items:center;gap:.25rem}
.dq .disque{width:calc(var(--d) * var(--D));height:calc(var(--d) * var(--D));display:block;filter:drop-shadow(0 4px 6px rgba(29,18,64,.25));transition:width .3s,height .3s}
.dq:nth-child(2n) .disque{transform:rotate(-8deg)}
.dq-e{font:700 1.25rem/1 var(--serif)}
.plus .hach{display:block;width:calc(var(--d) * var(--D));height:calc(var(--d) * var(--D));border-radius:50%;background:repeating-linear-gradient(135deg,var(--fram) 0 4px,transparent 4px 8px);box-shadow:inset 0 0 0 2px var(--fram)}
.plus .dq-e{color:var(--fram)}
.disque{font-family:var(--sans)}
.d-centre{fill:var(--encre)}
.d-anneau{fill:none;stroke:var(--clair);stroke-width:2;opacity:.5}
.d-per{fill:var(--clair);font-size:50px;font-weight:600}
.r-tot{margin:0;font-weight:600}
.r-tot span:first-child{font:700 1.625rem/1 var(--serif);margin-right:.25rem}
.plus-t{display:block;color:var(--fram)}
.plus-t.zero{color:var(--doux);font-weight:400}
.ry-note{grid-column:1/-1;color:var(--doux);font-size:1rem;max-width:52em;margin:.875rem 0 0}
.rythme.attente .ds{opacity:.25;filter:grayscale(1)}

.registre{padding:1.875rem 0 1rem}
.registre h2{font:700 clamp(1.875rem,3.4vw,3rem)/1.1 var(--serif);margin:0 0 .5rem}
.intro{color:var(--doux);max-width:50em}
.reg{margin-top:2.25rem}
.reg h3{font:400 clamp(1.375rem,2vw,1.75rem)/1.25 var(--serif);margin:0 0 .625rem;max-width:40em}
.reg h3 span{display:block;font:600 1rem/1.3 var(--sans);color:var(--fram)}
.reg .note{font-size:1rem;color:var(--doux);margin:0 0 .5rem;max-width:50em}
table{border-collapse:collapse;width:100%;max-width:1100px;font-variant-numeric:tabular-nums}
thead th{font-weight:600;font-size:.9375rem;color:var(--doux);text-align:left;padding:0 .625rem .375rem 0;vertical-align:bottom}
th,td{padding:0 .625rem 0 0}
td{font:700 1.3125rem/1.2 var(--serif)}
td.n,th.n{text-align:right}
tbody tr:nth-child(odd){background:var(--fond2)}
tbody th{text-align:left;font-weight:400}
tbody th button{all:unset;box-sizing:border-box;display:flex;align-items:baseline;gap:.25rem .875rem;flex-wrap:wrap;min-height:48px;padding:.5rem .625rem;cursor:pointer;width:100%}
tbody th button:focus-visible{outline:3px solid var(--fram);outline-offset:-3px}
.bd{font:600 1.1875rem/1.2 var(--sans);min-width:2.4em}
.rg{font-size:1rem;color:var(--doux)}
.pl{color:var(--fram)}
tr.ici{background:var(--encre)!important;color:var(--clair)}
tr.ici .rg,tr.ici .pl{color:#d9cfff}
tr.ici .bd::after{content:"chosen";font:600 .875rem var(--sans);margin-left:.5rem;color:#d9cfff}

.prose{max-width:46rem;padding:1rem 0 3rem}
.prose h2{font:700 clamp(1.625rem,2.6vw,2.125rem)/1.15 var(--serif);margin:2rem 0 .5rem}
.prose h2:first-child{margin-top:.5rem}
.prose p,.prose li{margin:.5rem 0}
.prose ul{padding-left:1.25rem}
.prose a{padding:.6875rem 0}
.defile{overflow-x:auto}
.faits{max-width:52rem}
.faits h2{font-size:1.875rem}

.bas{background:var(--encre);color:var(--clair);padding:2.125rem clamp(16px,5vw,80px) 2.5rem;font-size:1.0625rem}
.bas h2{font:700 1.625rem/1.2 var(--serif);margin:0 0 .625rem}
.bas a{color:#fff}
.bas p{margin:.375rem 0;max-width:62em}
.bas ol{padding-left:1.25rem;margin:.5rem 0 .875rem;max-width:62em}
.bas li{margin:0}
/* Source links: a 44 px tall target (judge, correction 7) */
.bas li a,.bas .liens a{display:inline-block;padding:.6875rem 0;line-height:1.3}
.bas .liens{display:flex;flex-wrap:wrap;gap:0 1.5rem}
.indep{font-weight:600}

@media (max-width:900px){
 .rythme{display:block}
 .rangee{display:grid;grid-template-columns:minmax(0,1fr);gap:.375rem 0;padding:.625rem 0}
 .r-titre,.ds,.r-tot{padding:0}
 .r-tot{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .625rem}
 .plus-t{display:inline}
}
@media (max-width:560px){
 .haut{padding:.625rem 16px 0}
 main{padding:0 16px}
 .bas{padding-left:16px;padding-right:16px}
 .tete-page{padding-top:.625rem}
 h1{font-size:1.125rem}
 .outil h1,.interieur h1{font-size:2.25rem}
 .qual{font-size:1.0625rem}
 .cherche{gap:.5rem .75rem;margin-top:1rem}
 .cherche select{width:100%;font-size:1.0625rem}
 .ch-a{width:100%}
 .rythme{--D:290px;margin-top:.875rem}
 .dq-e{font-size:1.0625rem}
 .resume{font-size:1.1875rem}
 td{font-size:1.125rem}
 .rg{font-size:.9375rem;width:100%}
 thead th{font-size:.875rem}
 th,td{padding-right:.375rem}
 .pl{display:none}
 tbody th button{padding:.375rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
